rack-auth-cookie 0.7.1 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,16 +6,24 @@ module Rack
6
6
  module Auth
7
7
  class Cookie
8
8
  # The version of the rack-auth-cookie library.
9
- VERSION = '0.7.1'
9
+ VERSION = '0.7.2'
10
10
 
11
- # Creates a new Rack::Auth::Cookie object. The +cookie_name+ param gives the
11
+ # Creates a new Rack::Auth::Cookie object.
12
+ #
13
+ # The +cookie_name+ param gives the
12
14
  # name of the cookie used to authenticate the requestor. The default is
13
15
  # 'auth_token'.
14
16
  #
17
+ # The +cookie_domain+ param gives a domain name to use for the cookie.
18
+ # If unspecified, cookies will be set without specifying a domain.
19
+ # Per RFC 2965, this should cause user agents to default to the effective
20
+ # request-host.
21
+ #
15
22
  def initialize(app, options = {})
16
23
  @app = app
17
24
  @@secret = options[:secret]
18
25
  @@cookie_name = options[:cookie_name] || "auth_token"
26
+ @@cookie_domain = options[:cookie_domain] || nil
19
27
  @@idle_timeout = options[:idle_timeout] || 3600
20
28
  @@max_lifetime = options[:max_lifetime] || 36000
21
29
  @@env = {}
@@ -182,7 +190,7 @@ module Rack
182
190
  def self.create_auth_cookie(env)
183
191
  cookie_value = create_auth_token(env)
184
192
  cookie = "#{@@cookie_name}=#{URI.escape(cookie_value)}; "
185
- cookie += "domain=.#{top_level_domain(env)}; "
193
+ cookie += "domain=.#{@@cookie_domain}; " if @@cookie_domain
186
194
  cookie += "path=/; "
187
195
  cookie += "HttpOnly; "
188
196
  end
@@ -190,7 +198,7 @@ module Rack
190
198
  def self.create_clear_cookie(env)
191
199
  cookie_value = ""
192
200
  cookie = "#{@@cookie_name}=; "
193
- cookie += "domain=.#{top_level_domain(env)}; "
201
+ cookie += "domain=.#{@@cookie_domain}; " if @@cookie_domain
194
202
  cookie += "path=/; "
195
203
  cookie += "expires=Thu, 01-Jan-1970 00:00:00 GMT; "
196
204
  cookie += "HttpOnly; "
@@ -199,23 +207,6 @@ module Rack
199
207
  def self.generate_hmac(data)
200
208
  OpenSSL::HMAC.hexdigest(OpenSSL::Digest::SHA1.new, @@secret, data)
201
209
  end
202
-
203
- def self.raw_host_with_port(env)
204
- if forwarded = env["HTTP_X_FORWARDED_HOST"]
205
- forwarded.split(/,\s?/).last
206
- else
207
- env['HTTP_HOST'] || "#{env['SERVER_NAME'] ||
208
- env['SERVER_ADDR']}:#{env['SERVER_PORT']}"
209
- end
210
- end
211
-
212
- def self.host(env)
213
- raw_host_with_port(env).sub(/:\d+$/, '')
214
- end
215
-
216
- def self.top_level_domain(env, tld_length = 1)
217
- host(env).split('.').last(1 + tld_length).join('.')
218
- end
219
210
  end
220
211
  end
221
212
  end
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = 'rack-auth-cookie'
5
- gem.version = '0.7.1'
5
+ gem.version = '0.7.2'
6
6
  gem.authors = ["Daniel Berger", "Charlie O'Keefe"]
7
7
  gem.email = 'cokeefe@globe.gov'
8
8
  gem.homepage = 'http://www.github.com/charlieok/rack-auth-cookie'
@@ -9,7 +9,7 @@ class TC_Rack_Auth_Cookie < Test::Unit::TestCase
9
9
  end
10
10
 
11
11
  def test_version
12
- assert_equal('0.7.1', Rack::Auth::Cookie::VERSION)
12
+ assert_equal('0.7.2', Rack::Auth::Cookie::VERSION)
13
13
  end
14
14
 
15
15
  def test_constructor_basic
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-auth-cookie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Berger
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2010-01-25 00:00:00 -07:00
13
+ date: 2010-07-28 00:00:00 -06:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -37,6 +37,7 @@ files:
37
37
  - CHANGES
38
38
  - lib/rack/auth/cookie.rb
39
39
  - MANIFEST
40
+ - rack-auth-cookie-0.7.2.gem
40
41
  - rack-auth-cookie.gemspec
41
42
  - Rakefile
42
43
  - README