vidibus-user 0.0.10 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
metadata CHANGED
@@ -1,270 +1,279 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: vidibus-user
3
- version: !ruby/object:Gem::Version
4
- hash: 11
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 10
10
- version: 0.0.10
11
6
  platform: ruby
12
- authors:
13
- - Andre Pankratz
7
+ authors:
8
+ - André Pankratz
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-08-04 00:00:00 +02:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- prerelease: false
23
- type: :runtime
24
- requirement: &id001 !ruby/object:Gem::Requirement
12
+ date: 2013-10-15 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: mongoid
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 7
30
- segments:
31
- - 3
32
- - 0
33
- version: "3.0"
34
- name: rails
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- prerelease: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '3'
38
22
  type: :runtime
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 2
47
- - 0
48
- version: "2.0"
49
- name: mongoid
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
23
  prerelease: false
53
- type: :runtime
54
- requirement: &id003 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
55
25
  none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '3'
30
+ - !ruby/object:Gem::Dependency
63
31
  name: warden
64
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
66
- prerelease: false
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
67
38
  type: :runtime
68
- requirement: &id004 !ruby/object:Gem::Requirement
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
69
41
  none: false
70
- requirements:
71
- - - ~>
72
- - !ruby/object:Gem::Version
73
- hash: 13
74
- segments:
75
- - 0
76
- - 4
77
- - 1
78
- version: 0.4.1
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
79
47
  name: oauth2
80
- version_requirements: *id004
81
- - !ruby/object:Gem::Dependency
82
- prerelease: false
83
- type: :runtime
84
- requirement: &id005 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
85
49
  none: false
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- hash: 3
90
- segments:
91
- - 0
92
- version: "0"
93
- name: json
94
- version_requirements: *id005
95
- - !ruby/object:Gem::Dependency
96
- prerelease: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 0.9.2
97
54
  type: :runtime
98
- requirement: &id006 !ruby/object:Gem::Requirement
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
99
57
  none: false
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- hash: 3
104
- segments:
105
- - 0
106
- version: "0"
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.9.2
62
+ - !ruby/object:Gem::Dependency
107
63
  name: vidibus-uuid
108
- version_requirements: *id006
109
- - !ruby/object:Gem::Dependency
110
- prerelease: false
111
- type: :runtime
112
- requirement: &id007 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
113
65
  none: false
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- hash: 3
118
- segments:
119
- - 0
120
- version: "0"
121
- name: vidibus-secure
122
- version_requirements: *id007
123
- - !ruby/object:Gem::Dependency
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
124
71
  prerelease: false
125
- type: :development
126
- requirement: &id008 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: vidibus-service
80
+ requirement: !ruby/object:Gem::Requirement
127
81
  none: false
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- hash: 3
132
- segments:
133
- - 0
134
- version: "0"
135
- name: jeweler
136
- version_requirements: *id008
137
- - !ruby/object:Gem::Dependency
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :runtime
138
87
  prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: bundler
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: 1.0.0
139
102
  type: :development
140
- requirement: &id009 !ruby/object:Gem::Requirement
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
141
105
  none: false
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- hash: 3
146
- segments:
147
- - 0
148
- version: "0"
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: 1.0.0
110
+ - !ruby/object:Gem::Dependency
149
111
  name: rake
150
- version_requirements: *id009
151
- - !ruby/object:Gem::Dependency
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
152
119
  prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rdoc
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
153
134
  type: :development
154
- requirement: &id010 !ruby/object:Gem::Requirement
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
155
137
  none: false
156
- requirements:
157
- - - ~>
158
- - !ruby/object:Gem::Version
159
- hash: 7
160
- segments:
161
- - 2
162
- version: "2"
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
163
143
  name: rspec
164
- version_requirements: *id010
165
- - !ruby/object:Gem::Dependency
166
- prerelease: false
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: '2'
167
150
  type: :development
168
- requirement: &id011 !ruby/object:Gem::Requirement
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
169
153
  none: false
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- hash: 3
174
- segments:
175
- - 0
176
- version: "0"
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: '2'
158
+ - !ruby/object:Gem::Dependency
177
159
  name: rr
178
- version_requirements: *id011
179
- - !ruby/object:Gem::Dependency
180
- prerelease: false
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
181
166
  type: :development
182
- requirement: &id012 !ruby/object:Gem::Requirement
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: simplecov
176
+ requirement: !ruby/object:Gem::Requirement
183
177
  none: false
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- hash: 3
188
- segments:
189
- - 0
190
- version: "0"
191
- name: relevance-rcov
192
- version_requirements: *id012
193
- - !ruby/object:Gem::Dependency
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :development
194
183
  prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ - !ruby/object:Gem::Dependency
191
+ name: rack
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
195
198
  type: :development
196
- requirement: &id013 !ruby/object:Gem::Requirement
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
197
201
  none: false
198
- requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- hash: 3
202
- segments:
203
- - 0
204
- version: "0"
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ - !ruby/object:Gem::Dependency
205
207
  name: webmock
206
- version_requirements: *id013
207
- description: Provides single sign-on and a local user model.
208
- email: andre@vidibus.com
208
+ requirement: !ruby/object:Gem::Requirement
209
+ none: false
210
+ requirements:
211
+ - - ! '>='
212
+ - !ruby/object:Gem::Version
213
+ version: '0'
214
+ type: :development
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ! '>='
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ description: Provides a user model and tools to authenticate the current user.
223
+ email: andre@webwarelab.com
209
224
  executables: []
210
-
211
225
  extensions: []
212
-
213
- extra_rdoc_files:
214
- - LICENSE
215
- - README.rdoc
216
- files:
217
- - .document
218
- - .rspec
219
- - Gemfile
220
- - LICENSE
221
- - README.rdoc
222
- - Rakefile
223
- - VERSION
224
- - app/models/user.rb
225
- - config/routes.rb
226
- - lib/vidibus-user.rb
227
- - lib/vidibus/user.rb
226
+ extra_rdoc_files: []
227
+ files:
228
228
  - lib/vidibus/user/callback_app.rb
229
- - lib/vidibus/user/extensions.rb
229
+ - lib/vidibus/user/errors.rb
230
230
  - lib/vidibus/user/extensions/controller.rb
231
+ - lib/vidibus/user/extensions/helper.rb
232
+ - lib/vidibus/user/extensions.rb
231
233
  - lib/vidibus/user/mongoid.rb
232
- - lib/vidibus/user/warden_strategy.rb
233
- - spec/spec_helper.rb
234
- - vidibus-user.gemspec
235
- has_rdoc: true
236
- homepage: http://github.com/vidibus/vidibus-user
237
- licenses: []
238
-
234
+ - lib/vidibus/user/railstie.rb
235
+ - lib/vidibus/user/version.rb
236
+ - lib/vidibus/user/warden/callbacks/after_set_user.rb
237
+ - lib/vidibus/user/warden/callbacks/before_logout.rb
238
+ - lib/vidibus/user/warden/callbacks.rb
239
+ - lib/vidibus/user/warden/failure_app.rb
240
+ - lib/vidibus/user/warden/helper.rb
241
+ - lib/vidibus/user/warden/serialize.rb
242
+ - lib/vidibus/user/warden/strategies/single_sign_on.rb
243
+ - lib/vidibus/user/warden/strategies.rb
244
+ - lib/vidibus/user/warden.rb
245
+ - lib/vidibus/user.rb
246
+ - lib/vidibus-user.rb
247
+ - app/models/user.rb
248
+ - config/routes.rb
249
+ - README.md
250
+ - Rakefile
251
+ homepage: https://github.com/vidibus/vidibus-user
252
+ licenses:
253
+ - MIT
239
254
  post_install_message:
240
255
  rdoc_options: []
241
-
242
- require_paths:
256
+ require_paths:
243
257
  - lib
244
- required_ruby_version: !ruby/object:Gem::Requirement
258
+ required_ruby_version: !ruby/object:Gem::Requirement
245
259
  none: false
246
- requirements:
247
- - - ">="
248
- - !ruby/object:Gem::Version
249
- hash: 3
250
- segments:
260
+ requirements:
261
+ - - ! '>='
262
+ - !ruby/object:Gem::Version
263
+ version: '0'
264
+ segments:
251
265
  - 0
252
- version: "0"
253
- required_rubygems_version: !ruby/object:Gem::Requirement
266
+ hash: -3619228275226124841
267
+ required_rubygems_version: !ruby/object:Gem::Requirement
254
268
  none: false
255
- requirements:
256
- - - ">="
257
- - !ruby/object:Gem::Version
258
- hash: 3
259
- segments:
260
- - 0
261
- version: "0"
269
+ requirements:
270
+ - - ! '>='
271
+ - !ruby/object:Gem::Version
272
+ version: 1.3.6
262
273
  requirements: []
263
-
264
- rubyforge_project:
265
- rubygems_version: 1.6.2
274
+ rubyforge_project: vidibus-user
275
+ rubygems_version: 1.8.24
266
276
  signing_key:
267
277
  specification_version: 3
268
- summary: Single sign-on for Vidibus applications.
278
+ summary: User library for authentication
269
279
  test_files: []
270
-
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --colour
2
- --format nested
data/Gemfile DELETED
@@ -1,18 +0,0 @@
1
- source :rubygems
2
- gem "rails", "~> 3.0"
3
- gem "mongoid", "~> 2.0"
4
- gem "warden"
5
- gem "oauth2", "~> 0.4.1"
6
- gem "json"
7
- gem "vidibus-uuid"
8
- gem "vidibus-secure"
9
-
10
- # Development dependecies
11
- group :development do
12
- gem "jeweler"
13
- gem "rake"
14
- gem "rspec", "~> 2"
15
- gem "rr"
16
- gem "relevance-rcov"
17
- gem "webmock"
18
- end
data/LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2010 Andre Pankratz
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc DELETED
@@ -1,43 +0,0 @@
1
- = Vidibus::User
2
-
3
- Provides single sign-on through OAuth2 authentication. It adds a simple user model to your application which can be extended easily.
4
-
5
- This gem is part of the open source SOA framework {Vidibus}[http://vidibus.org].
6
-
7
- It is far from being complete, but this will change soon.
8
-
9
-
10
- == Installation
11
-
12
- Add the dependency to the Gemfile of your application:
13
-
14
- gem "vidibus-user"
15
-
16
- Then call bundle install on your console.
17
-
18
-
19
- == Obtaining user data
20
-
21
- After authorization via OAuth2 this gem requests user data from the providing service. It will call the following route:
22
-
23
- /oauth/user
24
-
25
- It expects JSON data to be returned. The dataset must at least include the user's UUID.
26
-
27
- The {Vidibus::Oauth2Server}[https://github.com/vidibus/vidibus-oauth2_server] gem will provide a controller for this task.
28
-
29
-
30
- == Dependencies
31
-
32
- In order to perform authentication, this gem depends on services provided by the {Vidibus::Service}[https://github.com/vidibus/vidibus-service] gem.
33
-
34
-
35
- == TODO
36
-
37
- * Write specs
38
- * Explain usage and integration
39
-
40
-
41
- == Copyright
42
-
43
- Copyright (c) 2010 Andre Pankratz. See LICENSE for details.
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.0.10
@@ -1,80 +0,0 @@
1
- require "rubygems"
2
- require "warden"
3
- require "oauth2"
4
- require "json"
5
-
6
- Warden::Strategies.add(:connector) do
7
- def valid?
8
- true
9
- end
10
-
11
- # Sets credentials for Connector login in session.
12
- # The client_secret will be validated through Vidibus' OauthServer when issuing an OAuth token.
13
- # To protect the service's secret, a custom signature will be sent instead.
14
- def credentials
15
- @credentials ||= begin
16
- service = Service(:user, realm)
17
- raise "Failed to set service credentials! This service has not been set up, user service is missing." unless this and service
18
- {
19
- :client_id => "#{this.uuid}-#{realm}",
20
- :client_secret => Vidibus::Secure.sign(this.uuid, service.secret),
21
- :service_url => service.url
22
- }
23
- end
24
- end
25
-
26
- # Returns this service
27
- def this
28
- @this ||= Service.this
29
- end
30
-
31
- # Returns the current realm
32
- def realm
33
- @realm ||= params["realm"] || env[:realm] || raise(Vidibus::User::NoRealmError, "No realm available!")
34
- end
35
-
36
- # Returns OAuth client
37
- def client
38
- @client ||= OAuth2::Client.new(credentials[:client_id], credentials[:client_secret], :site => credentials[:service_url])
39
- end
40
-
41
- def authenticate!
42
- code = params["code"]
43
- redirect_url = "#{host}/authenticate_user?realm=#{realm}"
44
- args = {:redirect_url => redirect_url}
45
-
46
- # Fetch code first
47
- return redirect!(client.web_server.authorize_url(args)) unless code
48
-
49
- # Exchange code for token
50
- access_token = client.web_server.get_access_token(code, :redirect_url => redirect_url)
51
-
52
- # Try to fetch user data
53
- begin
54
- response = access_token.get("/oauth/user")
55
- user_data = JSON.parse(response)
56
- selector = {:uuid => user_data["uuid"]}
57
- user = User.where(selector).first || User.create!(selector)
58
- user.update_attributes!(user_data)
59
- rescue OAuth2::HTTPError
60
- Rails.logger.error "Failed to fetch user data from #{credentials[:service_url]}/oauth/user"
61
- user = true
62
- rescue => e
63
- Rails.logger.error "Error: #{e.message}"
64
- end
65
-
66
- success!(user)
67
- rescue OAuth2::HTTPError => e
68
- raise e.response.body
69
- end
70
-
71
- # Returns current host.
72
- def host
73
- "#{protocol}#{env["HTTP_HOST"]}"
74
- end
75
-
76
- # Returns protocol depending on SERVER_PORT.
77
- def protocol
78
- env["SERVER_PORT"] == 443 ? "https://" : "http://"
79
- end
80
- end