bartt-ssl_requirement 1.2.6 → 1.2.7

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/Rakefile CHANGED
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  require 'rake'
2
3
  require 'rake/testtask'
3
4
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.6
1
+ 1.2.7
@@ -1,46 +1,43 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{bartt-ssl_requirement}
8
- s.version = "1.2.6"
8
+ s.version = "1.2.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["RailsJedi", "David Heinemeier Hansson", "jcnetdev", "bcurren", "bmpercy", "revo", "nathany", "bartt", "Thorben Schr\303\266der"]
12
- s.date = %q{2011-05-26}
11
+ s.authors = ["RailsJedi", "David Heinemeier Hansson", "jcnetdev", "bcurren", "bmpercy", "revo", "nathany", "bartt", "Thorben Schröder"]
12
+ s.date = %q{2011-05-27}
13
13
  s.description = %q{SSL requirement adds a declarative way of specifying that certain actions should only be allowed to run under SSL, and if they're accessed without it, they should be redirected.}
14
14
  s.email = %q{bart@thecodemill.biz}
15
15
  s.extra_rdoc_files = [
16
16
  "README"
17
17
  ]
18
18
  s.files = [
19
- ".gitignore",
20
- "README",
21
- "Rakefile",
22
- "VERSION",
23
- "bartt-ssl_requirement.gemspec",
24
- "init.rb",
25
- "lib/ssl_requirement.rb",
26
- "lib/url_for.rb",
27
- "rails/init.rb",
28
- "shoulda_macros/ssl_requirement_macros.rb",
29
- "test/ssl_requirement_test.rb",
30
- "test/url_for_test.rb"
19
+ "README",
20
+ "Rakefile",
21
+ "VERSION",
22
+ "bartt-ssl_requirement.gemspec",
23
+ "init.rb",
24
+ "lib/ssl_requirement.rb",
25
+ "lib/url_for.rb",
26
+ "rails/init.rb",
27
+ "shoulda_macros/ssl_requirement_macros.rb",
28
+ "test/ssl_requirement_test.rb",
29
+ "test/url_for_test.rb"
31
30
  ]
32
31
  s.homepage = %q{http://github.com/bartt/ssl_requirement}
33
- s.rdoc_options = ["--charset=UTF-8"]
34
32
  s.require_paths = ["lib"]
35
- s.rubygems_version = %q{1.3.7}
33
+ s.rubygems_version = %q{1.6.2}
36
34
  s.summary = %q{Allow controller actions to force SSL on specific parts of the site.}
37
35
  s.test_files = [
38
36
  "test/ssl_requirement_test.rb",
39
- "test/url_for_test.rb"
37
+ "test/url_for_test.rb"
40
38
  ]
41
39
 
42
40
  if s.respond_to? :specification_version then
43
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
44
41
  s.specification_version = 3
45
42
 
46
43
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
@@ -21,7 +21,8 @@ require "#{File.dirname(__FILE__)}/url_for"
21
21
  # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
22
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
23
  module SslRequirement
24
- mattr_writer :ssl_host, :non_ssl_host, :disable_ssl_check, :redirect_status
24
+ mattr_writer :ssl_host, :non_ssl_host, :disable_ssl_check
25
+ mattr_accessor :redirect_status
25
26
 
26
27
  def self.ssl_host
27
28
  determine_host(@@ssl_host) rescue nil
@@ -18,10 +18,11 @@ MSG
18
18
  end
19
19
  end
20
20
  end
21
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
21
22
 
22
23
  require 'action_dispatch/testing/test_process'
23
24
  require 'test/unit'
24
- require "#{File.dirname(__FILE__)}/../lib/ssl_requirement"
25
+ require "ssl_requirement"
25
26
 
26
27
  ActionController::Base.logger = nil
27
28
  ActionController::Routing::Routes.reload rescue nil
@@ -41,25 +42,25 @@ ROUTES.finalize!
41
42
 
42
43
  class SslRequirementController < ActionController::Base
43
44
  include SslRequirement
44
-
45
+
45
46
  ssl_required :a, :b
46
47
  ssl_allowed :c
47
-
48
+
48
49
  def a
49
50
  flash[:abar] = "foo"
50
51
  render :nothing => true
51
52
  end
52
-
53
+
53
54
  def b
54
55
  flash[:bbar] = "foo"
55
56
  render :nothing => true
56
57
  end
57
-
58
+
58
59
  def c
59
60
  flash[:cbar] = "foo"
60
61
  render :nothing => true
61
62
  end
62
-
63
+
63
64
  def d
64
65
  flash[:dbar] = "foo"
65
66
  render :nothing => true
@@ -69,7 +70,7 @@ class SslRequirementController < ActionController::Base
69
70
  flash[:foo] = "bar"
70
71
  render :nothing => true
71
72
  end
72
-
73
+
73
74
  def self._routes
74
75
  ROUTES
75
76
  end
@@ -77,27 +78,27 @@ end
77
78
 
78
79
  class SslExceptionController < ActionController::Base
79
80
  include SslRequirement
80
-
81
+
81
82
  ssl_required :a
82
83
  ssl_exceptions :b
83
84
  ssl_allowed :d
84
-
85
+
85
86
  def a
86
87
  render :nothing => true
87
88
  end
88
-
89
+
89
90
  def b
90
91
  render :nothing => true
91
92
  end
92
-
93
+
93
94
  def c
94
95
  render :nothing => true
95
96
  end
96
-
97
+
97
98
  def d
98
99
  render :nothing => true
99
100
  end
100
-
101
+
101
102
  def self._routes
102
103
  ROUTES
103
104
  end
@@ -105,13 +106,13 @@ end
105
106
 
106
107
  class SslAllActionsController < ActionController::Base
107
108
  include SslRequirement
108
-
109
+
109
110
  ssl_exceptions
110
-
111
+
111
112
  def a
112
113
  render :nothing => true
113
114
  end
114
-
115
+
115
116
  def self._routes
116
117
  ROUTES
117
118
  end
@@ -119,17 +120,17 @@ end
119
120
 
120
121
  class SslAllowAllActionsController < ActionController::Base
121
122
  include SslRequirement
122
-
123
+
123
124
  ssl_allowed :all
124
-
125
+
125
126
  def a
126
127
  render :nothing => true
127
128
  end
128
-
129
+
129
130
  def b
130
131
  render :nothing => true
131
132
  end
132
-
133
+
133
134
  def self._routes
134
135
  ROUTES
135
136
  end
@@ -141,7 +142,7 @@ end
141
142
 
142
143
  # NOTE: The only way I could get the flash tests to work under Rails 2.3.2
143
144
  # (without resorting to IntegrationTest with some artificial session
144
- # store) was to use TestCase. In TestCases, it appears that flash
145
+ # store) was to use TestCase. In TestCases, it appears that flash
145
146
  # messages are effectively persisted in session after the last controller
146
147
  # action that consumed them...so that when the TestCase inspects
147
148
  # the FlashHash, it will find the flash still populated, even though
@@ -151,8 +152,8 @@ end
151
152
  # flash is persisted forever. But if subsequent controller actions add to
152
153
  # flash, the older flash messages eventually disappear.
153
154
  #
154
- # As a result, the flash-related tests now make two requests after the
155
- # set_flash, each of these requests is also modifying flash. flash is
155
+ # As a result, the flash-related tests now make two requests after the
156
+ # set_flash, each of these requests is also modifying flash. flash is
156
157
  # inspected after the second request returns.
157
158
  #
158
159
  # This feels a little hacky, so if anyone can improve it, please do so!
@@ -161,7 +162,7 @@ end
161
162
  class SslRequirementTest < ActionController::TestCase
162
163
  def setup
163
164
  @routes = ROUTES
164
-
165
+
165
166
  @controller = SslRequirementController.new
166
167
  @ssl_host_override = 'www.example.com:80443'
167
168
  @non_ssl_host_override = 'www.example.com:8080'
@@ -187,7 +188,7 @@ class SslRequirementTest < ActionController::TestCase
187
188
  end
188
189
 
189
190
  # flash-related tests
190
-
191
+
191
192
  def test_redirect_to_https_preserves_flash
192
193
  assert_not_equal "on", @request.env["HTTPS"]
193
194
  get :set_flash
@@ -197,7 +198,7 @@ class SslRequirementTest < ActionController::TestCase
197
198
  assert_response :redirect # make sure it happens again
198
199
  assert_equal "bar", flash[:foo] # the flash would be gone now if no redirect
199
200
  end
200
-
201
+
201
202
  def test_not_redirecting_to_https_does_not_preserve_the_flash
202
203
  assert_not_equal "on", @request.env["HTTPS"]
203
204
  get :set_flash
@@ -207,7 +208,7 @@ class SslRequirementTest < ActionController::TestCase
207
208
  assert_response :success # check no redirect
208
209
  assert_nil flash[:foo] # the flash should be gone now
209
210
  end
210
-
211
+
211
212
  def test_redirect_to_http_preserves_flash
212
213
  get :set_flash
213
214
  @request.env['HTTPS'] = "on"
@@ -217,7 +218,7 @@ class SslRequirementTest < ActionController::TestCase
217
218
  assert_response :redirect # make sure redirect happens
218
219
  assert_equal "bar", flash[:foo] # flash would be gone now if no redirect
219
220
  end
220
-
221
+
221
222
  def test_not_redirecting_to_http_does_not_preserve_the_flash
222
223
  get :set_flash
223
224
  @request.env['HTTPS'] = "on"
@@ -229,7 +230,7 @@ class SslRequirementTest < ActionController::TestCase
229
230
  end
230
231
 
231
232
  # ssl required/allowed/exceptions testing
232
-
233
+
233
234
  def test_required_without_ssl
234
235
  assert_not_equal "on", @request.env["HTTPS"]
235
236
  get :a
@@ -239,7 +240,7 @@ class SslRequirementTest < ActionController::TestCase
239
240
  assert_response :redirect
240
241
  assert_match %r{^https://}, @response.headers['Location']
241
242
  end
242
-
243
+
243
244
  def test_required_with_ssl
244
245
  @request.env['HTTPS'] = "on"
245
246
  get :a
@@ -253,7 +254,7 @@ class SslRequirementTest < ActionController::TestCase
253
254
  get :d
254
255
  assert_response :success
255
256
  end
256
-
257
+
257
258
  def test_ssl_exceptions_without_ssl
258
259
  @controller = SslExceptionController.new
259
260
  assert_not_equal "on", @request.env["HTTPS"]
@@ -266,7 +267,7 @@ class SslRequirementTest < ActionController::TestCase
266
267
  assert_response :redirect
267
268
  assert_match %r{^https://}, @response.headers['Location']
268
269
  end
269
-
270
+
270
271
  def test_ssl_exceptions_with_ssl
271
272
  @controller = SslExceptionController.new
272
273
  @request.env['HTTPS'] = "on"
@@ -275,14 +276,14 @@ class SslRequirementTest < ActionController::TestCase
275
276
  get :c
276
277
  assert_response :success
277
278
  end
278
-
279
+
279
280
  def test_ssl_all_actions_without_ssl
280
281
  @controller = SslAllActionsController.new
281
282
  get :a
282
283
  assert_response :redirect
283
284
  assert_match %r{^https://}, @response.headers['Location']
284
285
  end
285
-
286
+
286
287
  def test_disallowed_with_ssl
287
288
  @request.env['HTTPS'] = "on"
288
289
  get :d
@@ -360,7 +361,7 @@ class SslRequirementTest < ActionController::TestCase
360
361
  end
361
362
 
362
363
  # test ssl_host and ssl_non_host overrides with Procs
363
-
364
+
364
365
  def test_ssl_redirect_with_ssl_host_proc
365
366
  SslRequirement.ssl_host = Proc.new do
366
367
  @ssl_host_override
@@ -368,14 +369,14 @@ class SslRequirementTest < ActionController::TestCase
368
369
  assert_not_equal "on", @request.env["HTTPS"]
369
370
  get :a
370
371
  assert_response :redirect
371
- assert_match Regexp.new("^https://#{@ssl_host_override}"),
372
+ assert_match Regexp.new("^https://#{@ssl_host_override}"),
372
373
  @response.headers['Location']
373
374
  SslRequirement.ssl_host = nil
374
375
  end
375
376
 
376
377
  def test_non_ssl_redirect_with_non_ssl_host_proc
377
378
  SslRequirement.non_ssl_host = Proc.new do
378
- @non_ssl_host_override
379
+ @non_ssl_host_override
379
380
  end
380
381
  @request.env['HTTPS'] = 'on'
381
382
  get :d
@@ -384,31 +385,31 @@ class SslRequirementTest < ActionController::TestCase
384
385
  @response.headers['Location']
385
386
  SslRequirement.non_ssl_host = nil
386
387
  end
387
-
388
+
388
389
  # test allowing ssl on any action by the :all symbol
389
390
  def test_controller_that_allows_ssl_on_all_actions_allows_requests_with_or_without_ssl_enabled
390
391
  @controller = SslAllowAllActionsController.new
391
-
392
+
392
393
  assert_not_equal "on", @request.env["HTTPS"]
393
-
394
+
394
395
  get :a
395
396
  assert_response :success
396
-
397
+
397
398
  get :b
398
399
  assert_response :success
399
-
400
+
400
401
  @request.env["HTTPS"] = "on"
401
-
402
+
402
403
  get :a
403
404
  assert_response :success
404
-
405
+
405
406
  get :b
406
407
  assert_response :success
407
408
  end
408
-
409
+
409
410
  def test_required_without_ssl_and_allowed_all
410
411
  @controller = SslAllowAllAndRequireController.new
411
-
412
+
412
413
  assert_not_equal "on", @request.env["HTTPS"]
413
414
  get :a
414
415
  assert_response :redirect
@@ -417,5 +418,5 @@ class SslRequirementTest < ActionController::TestCase
417
418
  assert_response :redirect
418
419
  assert_match %r{^https://}, @response.headers['Location']
419
420
  end
420
-
421
+
421
422
  end
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bartt-ssl_requirement
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease: false
6
- segments:
7
- - 1
8
- - 2
9
- - 6
10
- version: 1.2.6
4
+ prerelease:
5
+ version: 1.2.7
11
6
  platform: ruby
12
7
  authors:
13
8
  - RailsJedi
@@ -23,7 +18,7 @@ autorequire:
23
18
  bindir: bin
24
19
  cert_chain: []
25
20
 
26
- date: 2011-05-26 00:00:00 -07:00
21
+ date: 2011-05-27 00:00:00 -07:00
27
22
  default_executable:
28
23
  dependencies: []
29
24
 
@@ -36,7 +31,6 @@ extensions: []
36
31
  extra_rdoc_files:
37
32
  - README
38
33
  files:
39
- - .gitignore
40
34
  - README
41
35
  - Rakefile
42
36
  - VERSION
@@ -53,8 +47,8 @@ homepage: http://github.com/bartt/ssl_requirement
53
47
  licenses: []
54
48
 
55
49
  post_install_message:
56
- rdoc_options:
57
- - --charset=UTF-8
50
+ rdoc_options: []
51
+
58
52
  require_paths:
59
53
  - lib
60
54
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -62,23 +56,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
62
56
  requirements:
63
57
  - - ">="
64
58
  - !ruby/object:Gem::Version
65
- hash: 3
66
- segments:
67
- - 0
68
59
  version: "0"
69
60
  required_rubygems_version: !ruby/object:Gem::Requirement
70
61
  none: false
71
62
  requirements:
72
63
  - - ">="
73
64
  - !ruby/object:Gem::Version
74
- hash: 3
75
- segments:
76
- - 0
77
65
  version: "0"
78
66
  requirements: []
79
67
 
80
68
  rubyforge_project:
81
- rubygems_version: 1.3.7
69
+ rubygems_version: 1.6.2
82
70
  signing_key:
83
71
  specification_version: 3
84
72
  summary: Allow controller actions to force SSL on specific parts of the site.
data/.gitignore DELETED
@@ -1 +0,0 @@
1
- *.gem