oa-enterprise 0.2.4 → 0.2.5

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.
@@ -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