oa-enterprise 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,19 +4,19 @@ module OmniAuth
4
4
  module Strategies
5
5
  class CAS
6
6
  include OmniAuth::Strategy
7
-
7
+
8
8
  autoload :Configuration, 'omniauth/strategies/cas/configuration'
9
9
  autoload :ServiceTicketValidator, 'omniauth/strategies/cas/service_ticket_validator'
10
-
10
+
11
11
  def initialize(app, options = {}, &block)
12
12
  super(app, options[:name] || :cas, options.dup, &block)
13
13
  @configuration = OmniAuth::Strategies::CAS::Configuration.new(options)
14
14
  end
15
-
15
+
16
16
  protected
17
-
17
+
18
18
  def request_phase
19
- [
19
+ [
20
20
  302,
21
21
  {
22
22
  'Location' => @configuration.login_url(callback_url),
@@ -34,7 +34,7 @@ module OmniAuth
34
34
  return fail!(:invalid_ticket, 'Invalid CAS Ticket') if @user_info.nil? || @user_info.empty?
35
35
  super
36
36
  end
37
-
37
+
38
38
  def auth_hash
39
39
  OmniAuth::Utils.deep_merge(super, {
40
40
  'uid' => @user_info.delete('user'),
@@ -4,7 +4,7 @@ module OmniAuth
4
4
  module Strategies
5
5
  class CAS
6
6
  class Configuration
7
-
7
+
8
8
  DEFAULT_LOGIN_URL = "%s/login"
9
9
 
10
10
  DEFAULT_SERVICE_VALIDATE_URL = "%s/serviceValidate"
@@ -27,7 +27,7 @@ module OmniAuth
27
27
  # Build a CAS login URL from +service+.
28
28
  #
29
29
  # @param [String] service the service (a.k.a. return-to) URL
30
- #
30
+ #
31
31
  # @return [String] a URL like `http://cas.mycompany.com/login?service=...`
32
32
  def login_url(service)
33
33
  append_service @login_url, service
@@ -91,7 +91,7 @@ module OmniAuth
91
91
  result << 'service='
92
92
  result << Rack::Utils.escape(service)
93
93
  end
94
-
94
+
95
95
  end
96
96
  end
97
97
  end
@@ -5,7 +5,7 @@ require 'nokogiri'
5
5
  module OmniAuth
6
6
  module Strategies
7
7
  class CAS
8
- class ServiceTicketValidator
8
+ class ServiceTicketValidator
9
9
 
10
10
  VALIDATION_REQUEST_HEADERS = { 'Accept' => '*/*' }
11
11
 
@@ -47,7 +47,7 @@ module OmniAuth
47
47
  hash
48
48
  end
49
49
  end
50
-
50
+
51
51
  # finds an `<cas:authenticationSuccess>` node in
52
52
  # a `<cas:serviceResponse>` body if present; returns nil
53
53
  # if the passed body is nil or if there is no such node.
@@ -64,11 +64,11 @@ module OmniAuth
64
64
  nil
65
65
  end
66
66
  end
67
-
67
+
68
68
  # retrieves the `<cas:serviceResponse>` XML from the CAS server
69
69
  def get_service_response_body
70
70
  result = ''
71
- http = Net::HTTP.new(@uri.host, @uri.port)
71
+ http = ::Net::HTTP.new(@uri.host, @uri.port)
72
72
  http.use_ssl = @uri.port == 443 || @uri.instance_of?(URI::HTTPS)
73
73
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE if http.use_ssl? && @configuration.disable_ssl_verification?
74
74
  http.start do |c|
@@ -77,7 +77,7 @@ module OmniAuth
77
77
  end
78
78
  result
79
79
  end
80
-
80
+
81
81
  end
82
82
  end
83
83
  end
@@ -7,9 +7,9 @@ module OmniAuth
7
7
  module Strategies
8
8
  class LDAP
9
9
  include OmniAuth::Strategy
10
-
10
+
11
11
  autoload :Adaptor, 'omniauth/strategies/ldap/adaptor'
12
- @@config = {'name' => 'cn',
12
+ @@config = {'name' => 'cn',
13
13
  'first_name' => 'givenName',
14
14
  'last_name' => 'sn',
15
15
  'email' => ['mail', "email", 'userPrincipalName'],
@@ -32,9 +32,9 @@ module OmniAuth
32
32
  @name_proc = (@options.delete(:name_proc) || Proc.new {|name| name})
33
33
  @adaptor = OmniAuth::Strategies::LDAP::Adaptor.new(options)
34
34
  end
35
-
35
+
36
36
  protected
37
-
37
+
38
38
  def request_phase
39
39
  if env['REQUEST_METHOD'] == 'GET'
40
40
  get_credentials
@@ -51,15 +51,16 @@ module OmniAuth
51
51
  end.to_response
52
52
  end
53
53
 
54
- def callback_phase
54
+ def callback_phase
55
55
  begin
56
- creds = session.delete 'omniauth.ldap'
56
+ creds = session['omniauth.ldap']
57
+ session.delete 'omniauth.ldap'
57
58
  @ldap_user_info = {}
58
- begin
59
- (@adaptor.bind(:allow_anonymous => true) unless @adaptor.bound?)
60
- rescue Exception => e
59
+ begin
60
+ (@adaptor.bind(:allow_anonymous => true) unless @adaptor.bound?)
61
+ rescue Exception => e
61
62
  puts "failed to bind with the default credentials: " + e.message
62
- end
63
+ end
63
64
  @ldap_user_info = @adaptor.search(:filter => Net::LDAP::Filter.eq(@adaptor.uid, @name_proc.call(creds['username'])),:limit => 1) if @adaptor.bound?
64
65
  bind_dn = creds['username']
65
66
  bind_dn = @ldap_user_info[:dn].to_a.first if @ldap_user_info[:dn]
@@ -68,13 +69,13 @@ module OmniAuth
68
69
  @user_info = self.class.map_user(@@config, @ldap_user_info)
69
70
 
70
71
  @env['omniauth.auth'] = auth_hash
71
-
72
+
72
73
  rescue Exception => e
73
74
  return fail!(:invalid_credentials, e)
74
75
  end
75
76
  call_app!
76
- end
77
-
77
+ end
78
+
78
79
  def auth_hash
79
80
  OmniAuth::Utils.deep_merge(super, {
80
81
  'uid' => @user_info["uid"],
@@ -82,7 +83,7 @@ module OmniAuth
82
83
  'extra' => @ldap_user_info
83
84
  })
84
85
  end
85
-
86
+
86
87
  def self.map_user(mapper, object)
87
88
  user = {}
88
89
  mapper.each do |key, value|
@@ -97,14 +98,14 @@ module OmniAuth
97
98
  value1.each_with_index do |v,i|
98
99
  part = '';
99
100
  v.each {|v1| (part = object[v1.downcase.to_sym].to_s; break;) if object[v1.downcase.to_sym]}
100
- pattern.gsub!("%#{i}",part||'')
101
- end
101
+ pattern.gsub!("%#{i}",part||'')
102
+ end
102
103
  user[key] = pattern
103
104
  end
104
105
  end
105
106
  end
106
107
  user
107
- end
108
+ end
108
109
  end
109
110
  end
110
111
  end
@@ -9,50 +9,49 @@ module OmniAuth
9
9
  module Strategies
10
10
  class LDAP
11
11
  class Adaptor
12
- class LdapError < StandardError; end
13
- class ConfigurationError < StandardError; end
14
- class AuthenticationError < StandardError; end
15
- class ConnectionError < StandardError; end
16
-
12
+ class LdapError < StandardError; end
13
+ class ConfigurationError < StandardError; end
14
+ class AuthenticationError < StandardError; end
15
+ class ConnectionError < StandardError; end
16
+
17
17
  VALID_ADAPTER_CONFIGURATION_KEYS = [:host, :port, :method, :bind_dn, :password,
18
18
  :try_sasl, :sasl_mechanisms, :uid, :base, :allow_anonymous]
19
-
19
+
20
20
  MUST_HAVE_KEYS = [:host, :port, :method, :uid, :base]
21
-
21
+
22
22
  METHOD = {
23
- :ssl => :simple_tls,
24
- :tls => :start_tls,
25
- :plain => nil
26
- }
27
-
28
- attr_accessor :bind_dn, :password
29
- attr_reader :connection, :uid, :base
30
-
31
- def initialize(configuration={})
32
- @connection = nil
33
- @disconnected = false
34
- @bound = false
35
- @configuration = configuration.dup
36
- @configuration[:allow_anonymous] ||= false
37
- @logger = @configuration.delete(:logger)
38
- message = []
39
- MUST_HAVE_KEYS.each do |name|
40
- message << name if configuration[name].nil?
41
- end
42
- raise ArgumentError.new(message.join(",") +" MUST be provided") unless message.empty?
23
+ :ssl => :simple_tls,
24
+ :tls => :start_tls,
25
+ :plain => nil,
26
+ }
27
+
28
+ attr_accessor :bind_dn, :password
29
+ attr_reader :connection, :uid, :base
30
+
31
+ def initialize(configuration={})
32
+ @connection = nil
33
+ @disconnected = false
34
+ @bound = false
35
+ @configuration = configuration.dup
36
+ @configuration[:allow_anonymous] ||= false
37
+ @logger = @configuration.delete(:logger)
38
+ message = []
39
+ MUST_HAVE_KEYS.each do |name|
40
+ message << name if configuration[name].nil?
41
+ end
42
+ raise ArgumentError.new(message.join(",") +" MUST be provided") unless message.empty?
43
43
  VALID_ADAPTER_CONFIGURATION_KEYS.each do |name|
44
44
  instance_variable_set("@#{name}", configuration[name])
45
45
  end
46
+ end
46
47
 
47
- end
48
-
49
- def connect(options={})
50
- host = options[:host] || @host
51
- method = ensure_method(options[:method] || @method || :plain)
52
- port = options[:port] || @port || ensure_port(method)
53
- @disconnected = false
54
- @bound = false
55
- @bind_tried = false
48
+ def connect(options={})
49
+ host = options[:host] || @host
50
+ method = ensure_method(options[:method] || @method || :plain)
51
+ port = options[:port] || @port || ensure_port(method)
52
+ @disconnected = false
53
+ @bound = false
54
+ @bind_tried = false
56
55
 
57
56
  config = {
58
57
  :host => host,
@@ -60,7 +59,7 @@ module OmniAuth
60
59
  }
61
60
 
62
61
  config[:encryption] = {:method => method} if method
63
-
62
+
64
63
  @connection, @uri, @with_start_tls = begin
65
64
  uri = construct_uri(host, port, method == :simple_tls)
66
65
  with_start_tls = method == :start_tls
@@ -69,78 +68,74 @@ module OmniAuth
69
68
  rescue Net::LDAP::LdapError
70
69
  raise ConnectionError, $!.message
71
70
  end
71
+ end
72
72
 
73
- end
74
-
75
- def unbind(options={})
76
- @connection.close # Net::LDAP doesn't implement unbind.
77
- end
78
-
79
- def bind(options={})
80
- connect(options) unless connecting?
81
- begin
82
- @bind_tried = true
83
-
84
- bind_dn = (options[:bind_dn] || @bind_dn).to_s
85
- try_sasl = options.has_key?(:try_sasl) ? options[:try_sasl] : @try_sasl
86
- if options.has_key?(:allow_anonymous)
87
- allow_anonymous = options[:allow_anonymous]
88
- else
89
- allow_anonymous = @allow_anonymous
73
+ def unbind(options={})
74
+ @connection.close # Net::LDAP doesn't implement unbind.
75
+ end
76
+
77
+ def bind(options={})
78
+ connect(options) unless connecting?
79
+ begin
80
+ @bind_tried = true
81
+
82
+ bind_dn = (options[:bind_dn] || @bind_dn).to_s
83
+ try_sasl = options.has_key?(:try_sasl) ? options[:try_sasl] : @try_sasl
84
+ if options.has_key?(:allow_anonymous)
85
+ allow_anonymous = options[:allow_anonymous]
86
+ else
87
+ allow_anonymous = @allow_anonymous
88
+ end
89
+ # Rough bind loop:
90
+ # Attempt 1: SASL if available
91
+ # Attempt 2: SIMPLE with credentials if password block
92
+ # Attempt 3: SIMPLE ANONYMOUS if 1 and 2 fail and allow anonymous is set to true
93
+ if try_sasl and sasl_bind(bind_dn, options)
94
+ puts "bound with sasl"
95
+ elsif simple_bind(bind_dn, options)
96
+ puts "bound with simple"
97
+ elsif allow_anonymous and bind_as_anonymous(options)
98
+ puts "bound as anonymous"
99
+ else
100
+ message = yield if block_given?
101
+ message ||= ('All authentication methods for %s exhausted.') % target
102
+ raise AuthenticationError, message
103
+ end
104
+ @bound = true
105
+ rescue Net::LDAP::LdapError
106
+ raise AuthenticationError, $!.message
107
+ end
108
+ end
109
+
110
+ def disconnect!(options={})
111
+ unbind(options)
112
+ @connection = @uri = @with_start_tls = nil
113
+ @disconnected = true
114
+ end
115
+
116
+ def rebind(options={})
117
+ unbind(options) if bound?
118
+ connect(options)
119
+ end
120
+
121
+ def connecting?
122
+ !@connection.nil? and !@disconnected
90
123
  end
91
- # Rough bind loop:
92
- # Attempt 1: SASL if available
93
- # Attempt 2: SIMPLE with credentials if password block
94
- # Attempt 3: SIMPLE ANONYMOUS if 1 and 2 fail and allow anonymous is set to true
95
- if try_sasl and sasl_bind(bind_dn, options)
96
- puts "bound with sasl"
97
- elsif simple_bind(bind_dn, options)
98
- puts "bound with simple"
99
- elsif allow_anonymous and bind_as_anonymous(options)
100
- puts "bound as anonymous"
101
- else
102
- message = yield if block_given?
103
- message ||= ('All authentication methods for %s exhausted.') % target
104
- raise AuthenticationError, message
105
- end
106
-
107
- @bound = true
108
- rescue Net::LDAP::LdapError
109
- raise AuthenticationError, $!.message
110
- end
111
- end
112
-
113
- def disconnect!(options={})
114
- unbind(options)
115
- @connection = @uri = @with_start_tls = nil
116
- @disconnected = true
117
- end
118
-
119
- def rebind(options={})
120
- unbind(options) if bound?
121
- connect(options)
122
- end
123
-
124
- def connecting?
125
- !@connection.nil? and !@disconnected
126
- end
127
-
128
- def bound?
129
- connecting? and @bound
130
- end
131
-
132
- def search(options={}, &block)
133
- base = options[:base]
134
- filter = options[:filter]
135
- limit = options[:limit]
136
-
137
- args = {
138
- :base => @base,
139
- :filter => filter,
140
- :size => limit
141
- }
142
-
143
- puts args.inspect
124
+
125
+ def bound?
126
+ connecting? and @bound
127
+ end
128
+
129
+ def search(options={}, &block)
130
+ base = options[:base]
131
+ filter = options[:filter]
132
+ limit = options[:limit]
133
+
134
+ args = {
135
+ :base => @base,
136
+ :filter => filter,
137
+ :size => limit
138
+ }
144
139
 
145
140
  attributes = {}
146
141
  execute(:search, args) do |entry|
@@ -151,11 +146,11 @@ module OmniAuth
151
146
  attributes
152
147
  end
153
148
 
154
- private
155
-
149
+ private
150
+
156
151
  def execute(method, *args, &block)
157
- result = @connection.send(method, *args, &block)
158
- message = nil
152
+ result = @connection.send(method, *args, &block)
153
+ message = nil
159
154
 
160
155
  if result.is_a?(Hash)
161
156
  message = result[:errorMessage]
@@ -166,117 +161,118 @@ module OmniAuth
166
161
  message = [Net::LDAP.result2string(result), message].compact.join(": ")
167
162
  raise LdapError, message
168
163
  end
169
- end
170
-
171
- def ensure_port(method)
172
- if method == :ssl
173
- URI::LDAPS::DEFAULT_PORT
174
- else
175
- URI::LDAP::DEFAULT_PORT
176
- end
177
- end
178
-
179
- def prepare_connection(options)
180
- end
181
-
182
- def ensure_method(method)
183
- method ||= "plain"
184
- normalized_method = method.to_s.downcase.to_sym
185
- return METHOD[normalized_method] if METHOD.has_key?(normalized_method)
186
-
187
- available_methods = METHOD.keys.collect {|m| m.inspect}.join(", ")
188
- format = "%s is not one of the available connect methods: %s"
189
- raise ConfigurationError, format % [method.inspect, available_methods]
190
- end
191
-
192
- def sasl_bind(bind_dn, options={})
193
- sasl_mechanisms = options[:sasl_mechanisms] || @sasl_mechanisms
194
- sasl_mechanisms.each do |mechanism|
195
- begin
196
- normalized_mechanism = mechanism.downcase.gsub(/-/, '_')
197
- sasl_bind_setup = "sasl_bind_setup_#{normalized_mechanism}"
198
- next unless respond_to?(sasl_bind_setup, true)
199
- initial_credential, challenge_response = send(sasl_bind_setup, bind_dn, options)
200
-
201
- args = {
202
- :method => :sasl,
203
- :initial_credential => initial_credential,
204
- :mechanism => mechanism,
205
- :challenge_response => challenge_response,
206
- }
207
-
208
- info = {
209
- :name => "bind: SASL", :dn => bind_dn, :mechanism => mechanism,
210
- }
211
- puts info.inspect
212
-
213
- execute(:bind, args)
214
- return true
215
-
216
- rescue Exception => e
217
- puts e.message
164
+ end
165
+
166
+ def ensure_port(method)
167
+ if method == :ssl
168
+ URI::LDAPS::DEFAULT_PORT
169
+ else
170
+ URI::LDAP::DEFAULT_PORT
171
+ end
172
+ end
173
+
174
+ def prepare_connection(options)
175
+ end
176
+
177
+ def ensure_method(method)
178
+ method ||= "plain"
179
+ normalized_method = method.to_s.downcase.to_sym
180
+ return METHOD[normalized_method] if METHOD.has_key?(normalized_method)
181
+
182
+ available_methods = METHOD.keys.collect {|m| m.inspect}.join(", ")
183
+ format = "%s is not one of the available connect methods: %s"
184
+ raise ConfigurationError, format % [method.inspect, available_methods]
185
+ end
186
+
187
+ def sasl_bind(bind_dn, options={})
188
+ sasl_mechanisms = options[:sasl_mechanisms] || @sasl_mechanisms
189
+ sasl_mechanisms.each do |mechanism|
190
+ begin
191
+ normalized_mechanism = mechanism.downcase.gsub(/-/, '_')
192
+ sasl_bind_setup = "sasl_bind_setup_#{normalized_mechanism}"
193
+ next unless respond_to?(sasl_bind_setup, true)
194
+ initial_credential, challenge_response = send(sasl_bind_setup, bind_dn, options)
195
+
196
+ args = {
197
+ :method => :sasl,
198
+ :initial_credential => initial_credential,
199
+ :mechanism => mechanism,
200
+ :challenge_response => challenge_response,
201
+ }
202
+
203
+ info = {
204
+ :name => "bind: SASL", :dn => bind_dn, :mechanism => mechanism,
205
+ }
206
+
207
+ execute(:bind, args)
208
+ return true
209
+
210
+ rescue Exception => e
211
+ puts e.message
212
+ end
218
213
  end
214
+ false
215
+ end
216
+
217
+ def sasl_bind_setup_digest_md5(bind_dn, options)
218
+ initial_credential = ""
219
+ challenge_response = Proc.new do |cred|
220
+ pref = SASL::Preferences.new :digest_uri => "ldap/#{@host}", :username => bind_dn, :has_password? => true, :password => options[:password]||@password
221
+ sasl = SASL.new("DIGEST-MD5", pref)
222
+ response = sasl.receive("challenge", cred)
223
+ response[1]
219
224
  end
225
+ [initial_credential, challenge_response]
226
+ end
220
227
 
221
- false
222
- end
228
+ def sasl_bind_setup_gss_spnego(bind_dn, options)
229
+ puts options.inspect
230
+ user,psw = [bind_dn, options[:password]||@password]
231
+ raise LdapError.new( "invalid binding information" ) unless (user && psw)
223
232
 
224
- def sasl_bind_setup_digest_md5(bind_dn, options)
225
- initial_credential = ""
226
- challenge_response = Proc.new do |cred|
227
- pref = SASL::Preferences.new :digest_uri => "ldap/#{@host}", :username => bind_dn, :has_password? => true, :password => options[:password]||@password
228
- sasl = SASL.new("DIGEST-MD5", pref)
229
- response = sasl.receive("challenge", cred)
230
- response[1]
233
+ nego = proc {|challenge|
234
+ t2_msg = Net::NTLM::Message.parse( challenge )
235
+ user, domain = user.split('\\').reverse
236
+ t2_msg.target_name = Net::NTLM::encode_utf16le(domain) if domain
237
+ t3_msg = t2_msg.response( {:user => user, :password => psw}, {:ntlmv2 => true} )
238
+ t3_msg.serialize
239
+ }
240
+ [Net::NTLM::Message::Type1.new.serialize, nego]
231
241
  end
232
- [initial_credential, challenge_response]
233
- end
234
242
 
235
- def sasl_bind_setup_gss_spnego(bind_dn, options)
236
- puts options.inspect
237
- user,psw = [bind_dn, options[:password]||@password]
238
- raise LdapError.new( "invalid binding information" ) unless (user && psw)
239
-
240
- nego = proc {|challenge|
241
- t2_msg = Net::NTLM::Message.parse( challenge )
242
- user, domain = user.split('\\').reverse
243
- t2_msg.target_name = Net::NTLM::encode_utf16le(domain) if domain
244
- t3_msg = t2_msg.response( {:user => user, :password => psw}, {:ntlmv2 => true} )
245
- t3_msg.serialize
246
- }
247
- [Net::NTLM::Message::Type1.new.serialize, nego]
248
- end
249
-
250
- def simple_bind(bind_dn, options={})
251
- args = {
252
- :method => :simple,
253
- :username => bind_dn,
254
- :password => (options[:password]||@password).to_s,
255
- }
256
- begin
257
- execute(:bind, args)
243
+ def simple_bind(bind_dn, options={})
244
+ args = {
245
+ :method => :simple,
246
+ :username => bind_dn,
247
+ :password => (options[:password]||@password).to_s,
248
+ }
249
+ begin
250
+ raise AuthenticationError if args[:password] == ""
251
+ execute(:bind, args)
252
+ true
253
+ rescue Exception
254
+ false
255
+ end
256
+ end
257
+
258
+ def bind_as_anonymous(options={})
259
+ execute(:bind, {:method => :anonymous})
258
260
  true
259
- rescue Exception
260
- false
261
261
  end
262
- end
263
- def bind_as_anonymous(options={})
264
- execute(:bind, {:method => :anonymous})
265
- true
266
- end
267
- def construct_uri(host, port, ssl)
268
- protocol = ssl ? "ldaps" : "ldap"
269
- URI.parse("#{protocol}://#{host}:#{port}").to_s
270
- end
271
262
 
272
- def target
273
- return nil if @uri.nil?
274
- if @with_start_tls
275
- "#{@uri}(StartTLS)"
276
- else
277
- @uri
263
+ def construct_uri(host, port, ssl)
264
+ protocol = ssl ? "ldaps" : "ldap"
265
+ URI.parse("#{protocol}://#{host}:#{port}").to_s
266
+ end
267
+
268
+ def target
269
+ return nil if @uri.nil?
270
+ if @with_start_tls
271
+ "#{@uri}(StartTLS)"
272
+ else
273
+ @uri
274
+ end
278
275
  end
279
- end
280
276
  end
281
277
  end
282
278
  end
@@ -0,0 +1,19 @@
1
+ module OmniAuth
2
+ module Version
3
+ unless defined?(::OmniAuth::Version::MAJOR)
4
+ MAJOR = 0
5
+ end
6
+ unless defined?(::OmniAuth::Version::MINOR)
7
+ MINOR = 2
8
+ end
9
+ unless defined?(::OmniAuth::Version::PATCH)
10
+ PATCH = 5
11
+ end
12
+ unless defined?(::OmniAuth::Version::PRE)
13
+ PRE = nil
14
+ end
15
+ unless defined?(::OmniAuth::Version::STRING)
16
+ STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
17
+ end
18
+ end
19
+ end
@@ -1,23 +1,26 @@
1
1
  # -*- encoding: utf-8 -*-
2
- require File.expand_path('../../omniauth/lib/omniauth/version', __FILE__)
2
+ require File.expand_path('../lib/omniauth/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
5
  gem.add_runtime_dependency 'addressable', '2.2.4'
6
- gem.add_runtime_dependency 'oa-core', Omniauth::VERSION.dup
6
+ gem.add_runtime_dependency 'jruby-openssl', '~> 0.7.3' if RUBY_PLATFORM == 'java'
7
7
  gem.add_runtime_dependency 'nokogiri', '~> 1.4.2'
8
- gem.add_runtime_dependency 'net-ldap', '~> 0.1.1'
9
- gem.add_runtime_dependency 'rubyntlm', '~> 0.1.1'
8
+ gem.add_runtime_dependency 'net-ldap', '~> 0.2.2'
9
+ gem.add_runtime_dependency 'oa-core', OmniAuth::Version::STRING
10
10
  gem.add_runtime_dependency 'pyu-ruby-sasl', '~> 0.0.3.1'
11
+ gem.add_runtime_dependency 'rubyntlm', '~> 0.1.1'
12
+ gem.add_development_dependency 'maruku', '~> 0.6'
11
13
  gem.add_development_dependency 'simplecov', '~> 0.4'
12
14
  gem.add_development_dependency 'rack-test', '~> 0.5'
13
15
  gem.add_development_dependency 'rake', '~> 0.8'
14
16
  gem.add_development_dependency 'rspec', '~> 2.5'
15
17
  gem.add_development_dependency 'webmock', '~> 1.6'
16
18
  gem.add_development_dependency 'yard', '~> 0.6'
19
+ gem.add_development_dependency 'ZenTest', '~> 4.5'
17
20
  gem.name = 'oa-enterprise'
18
- gem.version = Omniauth::VERSION.dup
19
- gem.summary = %q{Enterprise strategies for OmniAuth.}
21
+ gem.version = OmniAuth::Version::STRING
20
22
  gem.description = %q{Enterprise strategies for OmniAuth.}
23
+ gem.summary = gem.description
21
24
  gem.email = ['james.a.rosen@gmail.com', 'ping@intridea.com', 'michael@intridea.com', 'sferik@gmail.com']
22
25
  gem.homepage = 'http://github.com/intridea/omniauth'
23
26
  gem.authors = ['James A. Rosen', 'Ping Yu', 'Michael Bleigh', 'Erik Michaels-Ober']
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ require File.expand_path('../../../spec_helper', __FILE__)
2
2
  require 'cgi'
3
3
 
4
4
  describe OmniAuth::Strategies::CAS, :type => :strategy do
@@ -86,8 +86,8 @@ describe OmniAuth::Strategies::CAS, :type => :strategy do
86
86
  get '/auth/cas/callback?ticket=593af'
87
87
  end
88
88
 
89
- it 'should call through to the master app when response is gzipped' do
90
- last_response.body.should == 'true'
89
+ it 'should call through to the master app when response is gzipped' do
90
+ last_response.body.should == 'true'
91
91
  end
92
92
  end
93
93
  end
@@ -1,9 +1,8 @@
1
1
  require 'simplecov'
2
2
  SimpleCov.start
3
3
  require 'rspec'
4
- require 'rspec/autorun'
5
- require 'webmock/rspec'
6
4
  require 'rack/test'
5
+ require 'webmock/rspec'
7
6
  require 'omniauth/core'
8
7
  require 'omniauth/test'
9
8
  require 'omniauth/enterprise'
@@ -13,5 +12,3 @@ RSpec.configure do |config|
13
12
  config.include Rack::Test::Methods
14
13
  config.extend OmniAuth::Test::StrategyMacros, :type => :strategy
15
14
  end
16
-
17
- WebMock.disable_net_connect!
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: oa-enterprise
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.4
5
+ version: 0.2.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - James A. Rosen
@@ -13,7 +13,7 @@ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
15
 
16
- date: 2011-04-22 00:00:00 Z
16
+ date: 2011-04-29 00:00:00 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: addressable
@@ -27,126 +27,148 @@ dependencies:
27
27
  type: :runtime
28
28
  version_requirements: *id001
29
29
  - !ruby/object:Gem::Dependency
30
- name: oa-core
30
+ name: nokogiri
31
31
  prerelease: false
32
32
  requirement: &id002 !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
- - - "="
35
+ - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: 0.2.4
37
+ version: 1.4.2
38
38
  type: :runtime
39
39
  version_requirements: *id002
40
40
  - !ruby/object:Gem::Dependency
41
- name: nokogiri
41
+ name: net-ldap
42
42
  prerelease: false
43
43
  requirement: &id003 !ruby/object:Gem::Requirement
44
44
  none: false
45
45
  requirements:
46
46
  - - ~>
47
47
  - !ruby/object:Gem::Version
48
- version: 1.4.2
48
+ version: 0.2.2
49
49
  type: :runtime
50
50
  version_requirements: *id003
51
51
  - !ruby/object:Gem::Dependency
52
- name: net-ldap
52
+ name: oa-core
53
53
  prerelease: false
54
54
  requirement: &id004 !ruby/object:Gem::Requirement
55
55
  none: false
56
56
  requirements:
57
- - - ~>
57
+ - - "="
58
58
  - !ruby/object:Gem::Version
59
- version: 0.1.1
59
+ version: 0.2.5
60
60
  type: :runtime
61
61
  version_requirements: *id004
62
62
  - !ruby/object:Gem::Dependency
63
- name: rubyntlm
63
+ name: pyu-ruby-sasl
64
64
  prerelease: false
65
65
  requirement: &id005 !ruby/object:Gem::Requirement
66
66
  none: false
67
67
  requirements:
68
68
  - - ~>
69
69
  - !ruby/object:Gem::Version
70
- version: 0.1.1
70
+ version: 0.0.3.1
71
71
  type: :runtime
72
72
  version_requirements: *id005
73
73
  - !ruby/object:Gem::Dependency
74
- name: pyu-ruby-sasl
74
+ name: rubyntlm
75
75
  prerelease: false
76
76
  requirement: &id006 !ruby/object:Gem::Requirement
77
77
  none: false
78
78
  requirements:
79
79
  - - ~>
80
80
  - !ruby/object:Gem::Version
81
- version: 0.0.3.1
81
+ version: 0.1.1
82
82
  type: :runtime
83
83
  version_requirements: *id006
84
84
  - !ruby/object:Gem::Dependency
85
- name: simplecov
85
+ name: maruku
86
86
  prerelease: false
87
87
  requirement: &id007 !ruby/object:Gem::Requirement
88
88
  none: false
89
89
  requirements:
90
90
  - - ~>
91
91
  - !ruby/object:Gem::Version
92
- version: "0.4"
92
+ version: "0.6"
93
93
  type: :development
94
94
  version_requirements: *id007
95
95
  - !ruby/object:Gem::Dependency
96
- name: rack-test
96
+ name: simplecov
97
97
  prerelease: false
98
98
  requirement: &id008 !ruby/object:Gem::Requirement
99
99
  none: false
100
100
  requirements:
101
101
  - - ~>
102
102
  - !ruby/object:Gem::Version
103
- version: "0.5"
103
+ version: "0.4"
104
104
  type: :development
105
105
  version_requirements: *id008
106
106
  - !ruby/object:Gem::Dependency
107
- name: rake
107
+ name: rack-test
108
108
  prerelease: false
109
109
  requirement: &id009 !ruby/object:Gem::Requirement
110
110
  none: false
111
111
  requirements:
112
112
  - - ~>
113
113
  - !ruby/object:Gem::Version
114
- version: "0.8"
114
+ version: "0.5"
115
115
  type: :development
116
116
  version_requirements: *id009
117
117
  - !ruby/object:Gem::Dependency
118
- name: rspec
118
+ name: rake
119
119
  prerelease: false
120
120
  requirement: &id010 !ruby/object:Gem::Requirement
121
121
  none: false
122
122
  requirements:
123
123
  - - ~>
124
124
  - !ruby/object:Gem::Version
125
- version: "2.5"
125
+ version: "0.8"
126
126
  type: :development
127
127
  version_requirements: *id010
128
128
  - !ruby/object:Gem::Dependency
129
- name: webmock
129
+ name: rspec
130
130
  prerelease: false
131
131
  requirement: &id011 !ruby/object:Gem::Requirement
132
132
  none: false
133
133
  requirements:
134
134
  - - ~>
135
135
  - !ruby/object:Gem::Version
136
- version: "1.6"
136
+ version: "2.5"
137
137
  type: :development
138
138
  version_requirements: *id011
139
139
  - !ruby/object:Gem::Dependency
140
- name: yard
140
+ name: webmock
141
141
  prerelease: false
142
142
  requirement: &id012 !ruby/object:Gem::Requirement
143
143
  none: false
144
144
  requirements:
145
145
  - - ~>
146
146
  - !ruby/object:Gem::Version
147
- version: "0.6"
147
+ version: "1.6"
148
148
  type: :development
149
149
  version_requirements: *id012
150
+ - !ruby/object:Gem::Dependency
151
+ name: yard
152
+ prerelease: false
153
+ requirement: &id013 !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ~>
157
+ - !ruby/object:Gem::Version
158
+ version: "0.6"
159
+ type: :development
160
+ version_requirements: *id013
161
+ - !ruby/object:Gem::Dependency
162
+ name: ZenTest
163
+ prerelease: false
164
+ requirement: &id014 !ruby/object:Gem::Requirement
165
+ none: false
166
+ requirements:
167
+ - - ~>
168
+ - !ruby/object:Gem::Version
169
+ version: "4.5"
170
+ type: :development
171
+ version_requirements: *id014
150
172
  description: Enterprise strategies for OmniAuth.
151
173
  email:
152
174
  - james.a.rosen@gmail.com
@@ -163,7 +185,6 @@ files:
163
185
  - .gemtest
164
186
  - .rspec
165
187
  - .yardopts
166
- - Gemfile
167
188
  - LICENSE
168
189
  - README.rdoc
169
190
  - Rakefile
@@ -174,6 +195,7 @@ files:
174
195
  - lib/omniauth/strategies/cas/service_ticket_validator.rb
175
196
  - lib/omniauth/strategies/ldap.rb
176
197
  - lib/omniauth/strategies/ldap/adaptor.rb
198
+ - lib/omniauth/version.rb
177
199
  - oa-enterprise.gemspec
178
200
  - spec/fixtures/cas_failure.xml
179
201
  - spec/fixtures/cas_success.xml
data/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- source 'http://rubygems.org'
2
-
3
- gemspec