global_session 3.0.1 → 3.0.2

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.0.1
1
+ 3.0.2
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{global_session}
8
- s.version = "3.0.1"
7
+ s.name = "global_session"
8
+ s.version = "3.0.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Tony Spataro"]
12
- s.date = %q{2013-10-11}
13
- s.description = %q{This Rack middleware allows several web apps in an authentication domain to share session state, facilitating single sign-on in a distributed web app. It only provides session sharing and does not concern itself with authentication or replication of the user database.}
14
- s.email = %q{support@rightscale.com}
12
+ s.date = "2013-12-19"
13
+ s.description = "This Rack middleware allows several web apps in an authentication domain to share session state, facilitating single sign-on in a distributed web app. It only provides session sharing and does not concern itself with authentication or replication of the user database."
14
+ s.email = "support@rightscale.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
17
  "README.rdoc"
@@ -44,20 +44,19 @@ Gem::Specification.new do |s|
44
44
  "rails_generators/global_session_authority/USAGE",
45
45
  "rails_generators/global_session_authority/global_session_authority_generator.rb"
46
46
  ]
47
- s.homepage = %q{https://github.com/rightscale/global_session}
47
+ s.homepage = "https://github.com/rightscale/global_session"
48
48
  s.licenses = ["MIT"]
49
49
  s.require_paths = ["lib"]
50
- s.rubygems_version = %q{1.3.7}
51
- s.summary = %q{Secure single-domain session sharing plugin for Rack and Rails.}
50
+ s.rubygems_version = "1.8.15"
51
+ s.summary = "Secure single-domain session sharing plugin for Rack and Rails."
52
52
 
53
53
  if s.respond_to? :specification_version then
54
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
55
54
  s.specification_version = 3
56
55
 
57
56
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
58
57
  s.add_runtime_dependency(%q<json>, ["~> 1.4"])
59
58
  s.add_runtime_dependency(%q<rack-contrib>, ["~> 1.0"])
60
- s.add_runtime_dependency(%q<right_support>, [">= 2.8.2", "< 3.0"])
59
+ s.add_runtime_dependency(%q<right_support>, ["< 3.0", ">= 2.8.2"])
61
60
  s.add_runtime_dependency(%q<simple_uuid>, [">= 0.2.0"])
62
61
  s.add_development_dependency(%q<cucumber>, ["~> 1.0"])
63
62
  s.add_development_dependency(%q<debugger>, ["~> 1.5"])
@@ -72,7 +71,7 @@ Gem::Specification.new do |s|
72
71
  else
73
72
  s.add_dependency(%q<json>, ["~> 1.4"])
74
73
  s.add_dependency(%q<rack-contrib>, ["~> 1.0"])
75
- s.add_dependency(%q<right_support>, [">= 2.8.2", "< 3.0"])
74
+ s.add_dependency(%q<right_support>, ["< 3.0", ">= 2.8.2"])
76
75
  s.add_dependency(%q<simple_uuid>, [">= 0.2.0"])
77
76
  s.add_dependency(%q<cucumber>, ["~> 1.0"])
78
77
  s.add_dependency(%q<debugger>, ["~> 1.5"])
@@ -88,7 +87,7 @@ Gem::Specification.new do |s|
88
87
  else
89
88
  s.add_dependency(%q<json>, ["~> 1.4"])
90
89
  s.add_dependency(%q<rack-contrib>, ["~> 1.0"])
91
- s.add_dependency(%q<right_support>, [">= 2.8.2", "< 3.0"])
90
+ s.add_dependency(%q<right_support>, ["< 3.0", ">= 2.8.2"])
92
91
  s.add_dependency(%q<simple_uuid>, [">= 0.2.0"])
93
92
  s.add_dependency(%q<cucumber>, ["~> 1.0"])
94
93
  s.add_dependency(%q<debugger>, ["~> 1.5"])
@@ -46,7 +46,17 @@ module GlobalSession
46
46
  # Indicates that a client submitted a request with a session cookie that could not
47
47
  # be decoded or decompressed.
48
48
  #
49
- class MalformedCookie < ClientError; end
49
+ class MalformedCookie < ClientError
50
+ attr_reader :cookie
51
+
52
+ def initialize(message, cookie=nil)
53
+ if cookie.nil?
54
+ super(message)
55
+ else
56
+ super("(data[0..4]: '%s') - %s" % [cookie[0..4], message])
57
+ end
58
+ end
59
+ end
50
60
 
51
61
  # Indicates that application code tried to put an unserializable object into the glboal
52
62
  # session hash. Because the global session is serialized as JSON and not all Ruby types
@@ -34,18 +34,16 @@ module GlobalSession::Session
34
34
  guess_version(cookie).new(directory, cookie)
35
35
  end
36
36
 
37
- private
38
-
39
37
  def self.guess_version(cookie)
40
38
  case cookie
41
- when /^WzM/
39
+ when /^WzM/ # == "[3"
42
40
  V3
43
- when /^l9o/
41
+ when /^l9/ # == binary msgpack symbol for "beginning of array"
44
42
  V2
45
- when /^eNo/
43
+ when /^eN/ # == zlib-compressed form of "{"
46
44
  V1
47
45
  else
48
- V3
46
+ V1 # due to zlib compression, there might be corner cases with the eN prefix
49
47
  end
50
48
  end
51
49
  end
@@ -220,7 +220,7 @@ module GlobalSession::Session
220
220
  json = Zlib::Inflate.inflate(zbin)
221
221
  hash = GlobalSession::Encoding::JSON.load(json)
222
222
  rescue Exception => e
223
- mc = GlobalSession::MalformedCookie.new("Caused by #{e.class.name}: #{e.message}")
223
+ mc = GlobalSession::MalformedCookie.new("Caused by #{e.class.name}: #{e.message}", cookie)
224
224
  mc.set_backtrace(e.backtrace)
225
225
  raise mc
226
226
  end
@@ -237,7 +237,7 @@ module GlobalSession::Session
237
237
  array = GlobalSession::Encoding::Msgpack.load(msgpack)
238
238
  hash = attribute_array_to_hash(array)
239
239
  rescue Exception => e
240
- mc = GlobalSession::MalformedCookie.new("Caused by #{e.class.name}: #{e.message}")
240
+ mc = GlobalSession::MalformedCookie.new("Caused by #{e.class.name}: #{e.message}", cookie)
241
241
  mc.set_backtrace(e.backtrace)
242
242
  raise mc
243
243
  end
@@ -253,7 +253,7 @@ module GlobalSession::Session
253
253
  array, signature = self.class.decode_cookie(cookie)
254
254
  hash = attribute_array_to_hash(array)
255
255
  rescue Exception => e
256
- mc = GlobalSession::MalformedCookie.new("Caused by #{e.class.name}: #{e.message}")
256
+ mc = GlobalSession::MalformedCookie.new("Caused by #{e.class.name}: #{e.message}", cookie)
257
257
  mc.set_backtrace(e.backtrace)
258
258
  raise mc
259
259
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: global_session
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
5
- prerelease: false
4
+ hash: 3
5
+ prerelease:
6
6
  segments:
7
7
  - 3
8
8
  - 0
9
- - 1
10
- version: 3.0.1
9
+ - 2
10
+ version: 3.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tony Spataro
@@ -15,8 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-10-14 00:00:00 -07:00
19
- default_executable:
18
+ date: 2013-12-19 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  version_requirements: &id001 !ruby/object:Gem::Requirement
@@ -29,10 +28,10 @@ dependencies:
29
28
  - 1
30
29
  - 4
31
30
  version: "1.4"
32
- requirement: *id001
33
31
  type: :runtime
34
- name: json
32
+ requirement: *id001
35
33
  prerelease: false
34
+ name: json
36
35
  - !ruby/object:Gem::Dependency
37
36
  version_requirements: &id002 !ruby/object:Gem::Requirement
38
37
  none: false
@@ -44,14 +43,21 @@ dependencies:
44
43
  - 1
45
44
  - 0
46
45
  version: "1.0"
47
- requirement: *id002
48
46
  type: :runtime
49
- name: rack-contrib
47
+ requirement: *id002
50
48
  prerelease: false
49
+ name: rack-contrib
51
50
  - !ruby/object:Gem::Dependency
52
51
  version_requirements: &id003 !ruby/object:Gem::Requirement
53
52
  none: false
54
53
  requirements:
54
+ - - <
55
+ - !ruby/object:Gem::Version
56
+ hash: 7
57
+ segments:
58
+ - 3
59
+ - 0
60
+ version: "3.0"
55
61
  - - ">="
56
62
  - !ruby/object:Gem::Version
57
63
  hash: 43
@@ -60,17 +66,10 @@ dependencies:
60
66
  - 8
61
67
  - 2
62
68
  version: 2.8.2
63
- - - <
64
- - !ruby/object:Gem::Version
65
- hash: 7
66
- segments:
67
- - 3
68
- - 0
69
- version: "3.0"
70
- requirement: *id003
71
69
  type: :runtime
72
- name: right_support
70
+ requirement: *id003
73
71
  prerelease: false
72
+ name: right_support
74
73
  - !ruby/object:Gem::Dependency
75
74
  version_requirements: &id004 !ruby/object:Gem::Requirement
76
75
  none: false
@@ -83,10 +82,10 @@ dependencies:
83
82
  - 2
84
83
  - 0
85
84
  version: 0.2.0
86
- requirement: *id004
87
85
  type: :runtime
88
- name: simple_uuid
86
+ requirement: *id004
89
87
  prerelease: false
88
+ name: simple_uuid
90
89
  - !ruby/object:Gem::Dependency
91
90
  version_requirements: &id005 !ruby/object:Gem::Requirement
92
91
  none: false
@@ -98,10 +97,10 @@ dependencies:
98
97
  - 1
99
98
  - 0
100
99
  version: "1.0"
101
- requirement: *id005
102
100
  type: :development
103
- name: cucumber
101
+ requirement: *id005
104
102
  prerelease: false
103
+ name: cucumber
105
104
  - !ruby/object:Gem::Dependency
106
105
  version_requirements: &id006 !ruby/object:Gem::Requirement
107
106
  none: false
@@ -113,10 +112,10 @@ dependencies:
113
112
  - 1
114
113
  - 5
115
114
  version: "1.5"
116
- requirement: *id006
117
115
  type: :development
118
- name: debugger
116
+ requirement: *id006
119
117
  prerelease: false
118
+ name: debugger
120
119
  - !ruby/object:Gem::Dependency
121
120
  version_requirements: &id007 !ruby/object:Gem::Requirement
122
121
  none: false
@@ -128,10 +127,10 @@ dependencies:
128
127
  - 0
129
128
  - 8
130
129
  version: "0.8"
131
- requirement: *id007
132
130
  type: :development
133
- name: flexmock
131
+ requirement: *id007
134
132
  prerelease: false
133
+ name: flexmock
135
134
  - !ruby/object:Gem::Dependency
136
135
  version_requirements: &id008 !ruby/object:Gem::Requirement
137
136
  none: false
@@ -142,10 +141,10 @@ dependencies:
142
141
  segments:
143
142
  - 0
144
143
  version: "0"
145
- requirement: *id008
146
144
  type: :development
147
- name: httpclient
145
+ requirement: *id008
148
146
  prerelease: false
147
+ name: httpclient
149
148
  - !ruby/object:Gem::Dependency
150
149
  version_requirements: &id009 !ruby/object:Gem::Requirement
151
150
  none: false
@@ -158,10 +157,10 @@ dependencies:
158
157
  - 8
159
158
  - 3
160
159
  version: 1.8.3
161
- requirement: *id009
162
160
  type: :development
163
- name: jeweler
161
+ requirement: *id009
164
162
  prerelease: false
163
+ name: jeweler
165
164
  - !ruby/object:Gem::Dependency
166
165
  version_requirements: &id010 !ruby/object:Gem::Requirement
167
166
  none: false
@@ -173,10 +172,10 @@ dependencies:
173
172
  - 0
174
173
  - 4
175
174
  version: "0.4"
176
- requirement: *id010
177
175
  type: :development
178
- name: msgpack
176
+ requirement: *id010
179
177
  prerelease: false
178
+ name: msgpack
180
179
  - !ruby/object:Gem::Dependency
181
180
  version_requirements: &id011 !ruby/object:Gem::Requirement
182
181
  none: false
@@ -188,10 +187,10 @@ dependencies:
188
187
  - 0
189
188
  - 8
190
189
  version: "0.8"
191
- requirement: *id011
192
190
  type: :development
193
- name: rake
191
+ requirement: *id011
194
192
  prerelease: false
193
+ name: rake
195
194
  - !ruby/object:Gem::Dependency
196
195
  version_requirements: &id012 !ruby/object:Gem::Requirement
197
196
  none: false
@@ -203,10 +202,10 @@ dependencies:
203
202
  - 1
204
203
  - 2
205
204
  version: "1.2"
206
- requirement: *id012
207
205
  type: :development
208
- name: right_develop
206
+ requirement: *id012
209
207
  prerelease: false
208
+ name: right_develop
210
209
  - !ruby/object:Gem::Dependency
211
210
  version_requirements: &id013 !ruby/object:Gem::Requirement
212
211
  none: false
@@ -218,10 +217,10 @@ dependencies:
218
217
  - 1
219
218
  - 3
220
219
  version: "1.3"
221
- requirement: *id013
222
220
  type: :development
223
- name: rspec
221
+ requirement: *id013
224
222
  prerelease: false
223
+ name: rspec
225
224
  - !ruby/object:Gem::Dependency
226
225
  version_requirements: &id014 !ruby/object:Gem::Requirement
227
226
  none: false
@@ -233,10 +232,10 @@ dependencies:
233
232
  - 0
234
233
  - 10
235
234
  version: "0.10"
236
- requirement: *id014
237
235
  type: :development
238
- name: ruby-debug
236
+ requirement: *id014
239
237
  prerelease: false
238
+ name: ruby-debug
240
239
  description: This Rack middleware allows several web apps in an authentication domain to share session state, facilitating single sign-on in a distributed web app. It only provides session sharing and does not concern itself with authentication or replication of the user database.
241
240
  email: support@rightscale.com
242
241
  executables: []
@@ -273,7 +272,6 @@ files:
273
272
  - rails_generators/global_session/templates/global_session.yml.erb
274
273
  - rails_generators/global_session_authority/USAGE
275
274
  - rails_generators/global_session_authority/global_session_authority_generator.rb
276
- has_rdoc: true
277
275
  homepage: https://github.com/rightscale/global_session
278
276
  licenses:
279
277
  - MIT
@@ -303,7 +301,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
303
301
  requirements: []
304
302
 
305
303
  rubyforge_project:
306
- rubygems_version: 1.3.7
304
+ rubygems_version: 1.8.15
307
305
  signing_key:
308
306
  specification_version: 3
309
307
  summary: Secure single-domain session sharing plugin for Rack and Rails.