vidibus-user 0.0.10 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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