rack_global_session 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -135,17 +135,30 @@ module Rack
135
135
  begin
136
136
  read_cookie(env)
137
137
  renew_ticket(env)
138
- tuple = @app.call(env)
139
138
  rescue Exception => e
140
139
  wipe_cookie(env)
141
140
  $stderr.puts "Error while reading cookies: #{e.class} #{e} #{e.backtrace}"
142
141
  if env['rack.logger']
143
142
  env['rack.logger'].error("Error while reading cookies: #{e.class} #{e} #{e.backtrace}")
144
143
  end
145
- return [503, {'Content-Type' => 'text/plain'}, "Invalid cookie"]
144
+ return [403, {'Content-Type' => 'text/plain'}, "Invalid cookie"]
146
145
  else
147
- update_cookie(env)
148
- return tuple
146
+ begin
147
+ tuple = @app.call(env)
148
+ rescue HasGlobalSession::NoAuthority => e
149
+ wipe_cookie(env)
150
+ $stderr.puts "Error during request: #{e.class} #{e} #{e.backtrace}"
151
+ if env['rack.logger']
152
+ env['rack.logger'].error("Error during request: #{e.class} #{e} #{e.backtrace}")
153
+ end
154
+ return [500, {'Content-Type' => 'text/plain'}, "Error"]
155
+ rescue Exception => e
156
+ wipe_cookie(env)
157
+ raise e
158
+ else
159
+ update_cookie(env)
160
+ return tuple
161
+ end
149
162
  end
150
163
  end
151
164
  end
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  module GlobalSessions
3
- VERSION = "0.2"
3
+ VERSION = "0.3"
4
4
  end
5
5
  end
@@ -71,7 +71,7 @@ module Rack
71
71
  "aCookie" => "foo"
72
72
  }}
73
73
  key, hash, value = Rack::GlobalSession.new(lambda {}, @configuration).call(environment)
74
- key.should == 503
74
+ key.should == 403
75
75
  hash.should == {'Content-Type' => 'text/plain'}
76
76
  value.should == "Invalid cookie"
77
77
  $stderr.string.should =~ /HasGlobalSession::MalformedCookie/
@@ -91,7 +91,7 @@ module Rack
91
91
  base64 = HasGlobalSession::Encoding::Base64Cookie.dump(compressed)
92
92
  environment = {"rack.cookies" => {"aCookie" => base64}}
93
93
  key, hash, value = Rack::GlobalSession.new(lambda {}, @configuration).call(environment)
94
- key.should == 503
94
+ key.should == 403
95
95
  hash.should == {'Content-Type' => 'text/plain'}
96
96
  value.should == "Invalid cookie"
97
97
  $stderr.string.should =~ /OpenSSL::PKey::RSAError/
@@ -146,18 +146,18 @@ module Rack
146
146
  it 'should not renew expired cookies' do
147
147
  key, hash, value = Rack::GlobalSession.new(lambda {|e| e['global_session'].renew!},
148
148
  @configuration).call(@environment)
149
- key.should == 503
149
+ key.should == 500
150
150
  hash.should == {'Content-Type' => 'text/plain'}
151
- value.should == "Invalid cookie"
151
+ value.should == "Error"
152
152
  $stderr.string.should =~ /HasGlobalSession::NoAuthority/
153
153
  end
154
154
 
155
155
  it 'should not attempt to update the cookie when it is not an authority' do
156
156
  key, hash, value = Rack::GlobalSession.new(lambda {|e| e['global_session']['first'] = 4},
157
157
  @configuration).call(@environment)
158
- key.should == 503
158
+ key.should == 500
159
159
  hash.should == {'Content-Type' => 'text/plain'}
160
- value.should == "Invalid cookie"
160
+ value.should == "Error"
161
161
  $stderr.string.should =~ /HasGlobalSession::NoAuthority/
162
162
  end
163
163
  end
@@ -179,10 +179,9 @@ module Rack
179
179
 
180
180
  it 'should unconditionally wipe the cookie if an error occurs' do
181
181
  @environment['rack.cookies']['aCookie'].should_not be_nil
182
- key, hash, value = Rack::GlobalSession.new(lambda {raise "foo"}, @configuration).call(@environment)
183
- key.should == 503
184
- hash.should == {'Content-Type' => 'text/plain'}
185
- value.should == "Invalid cookie"
182
+ lambda {
183
+ Rack::GlobalSession.new(lambda {raise "foo"}, @configuration).call(@environment)
184
+ }.should raise_exception(/foo/)
186
185
  @environment['rack.cookies']['aCookie'][:value].should be_nil
187
186
  end
188
187
 
@@ -190,7 +189,7 @@ module Rack
190
189
  @config_hash["common"]["trust"] = "second"
191
190
  dump_config(@config_hash)
192
191
  key, hash, value = Rack::GlobalSession.new(lambda {}, @configuration).call(@environment)
193
- key.should == 503
192
+ key.should == 403
194
193
  hash.should == {'Content-Type' => 'text/plain'}
195
194
  value.should == "Invalid cookie"
196
195
  $stderr.string.should =~ /SecurityError/
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack_global_session
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 13
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 2
9
- version: "0.2"
8
+ - 3
9
+ version: "0.3"
10
10
  platform: ruby
11
11
  authors:
12
12
  - Graham Hughes
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-11-30 00:00:00 -08:00
17
+ date: 2010-12-01 00:00:00 -08:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency