rack-ssl-enforcer 0.2.2 → 0.2.3

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/README.rdoc CHANGED
@@ -1,8 +1,9 @@
1
1
  = Rack::SslEnforcer
2
2
 
3
- Rack::SslEnforcer is a simple Rack middleware to enforce ssl connections. As of Version 0.2.0, Rack::SslEnforcer marks
3
+ Rack::SslEnforcer is a simple Rack middleware to enforce SSL connections. As of Version 0.2.0, Rack::SslEnforcer marks
4
4
  Cookies as secure by default (HSTS must be set manually).
5
- Tested on Ruby 1.8.7 & 1.9.2
5
+
6
+ Tested on Ruby 1.8.7, 1.9.2, REE, JRuby and Rubinius.
6
7
 
7
8
  == Installation
8
9
 
@@ -19,7 +20,7 @@ Or, if you are using Bundler, just add this to your Gemfile:
19
20
  gem 'rack-ssl-enforcer'
20
21
 
21
22
  To use Rack::SslEnforcer in your Rails application, add the following line to your application
22
- config file (config/application.rb for Rails3, config/environment.rb for Rails2):
23
+ config file (<tt>config/application.rb</tt> for Rails 3, <tt>config/environment.rb</tt> for Rails 2):
23
24
 
24
25
  config.middleware.use Rack::SslEnforcer
25
26
 
@@ -38,7 +39,7 @@ You can also define specific regex patterns or paths or hosts to redirect.
38
39
  config.middleware.use Rack::SslEnforcer, :only => "/login"
39
40
  config.middleware.use Rack::SslEnforcer, :only => ["/login", /\.xml$/]
40
41
  config.middleware.use Rack::SslEnforcer, :only_hosts => 'api.example.com'
41
- config.middleware.use Rack::SslEnforcer, :only_hosts => ["[www|api]\.example\.org", 'example.com']
42
+ config.middleware.use Rack::SslEnforcer, :only_hosts => [/[www|api]\.example\.org$/, 'example.com']
42
43
  config.middleware.use Rack::SslEnforcer, :except_hosts => 'help.example.com'
43
44
  config.middleware.use Rack::SslEnforcer, :except_hosts => /[help|blog]\.example\.com$/
44
45
 
@@ -49,9 +50,9 @@ Use the :strict option to force http for all requests not matching your :only sp
49
50
  config.middleware.use Rack::SslEnforcer, :only => ["/login", /\.xml$/], :strict => true
50
51
  config.middleware.use Rack::SslEnforcer, :only_hosts => 'api.example.com', :strict => true
51
52
 
52
- Or in the case where you have matching urls with different methods (rails restful routes: get#users post#users || get#user/:id put#user/:id) you may need to post and put to secure but redirect to http on get.
53
+ Or in the case where you have matching urls with different methods (Rails RESTful routes: get#users post#users || get#user/:id put#user/:id) you may need to post and put to secure but redirect to http on get.
53
54
 
54
- config.middleware.use Rack::SslEnforcer, :only => [/^\/users\/(.+)\/edit/], :mixed => true
55
+ config.middleware.use Rack::SslEnforcer, :only => [%r{^/users/}], :mixed => true
55
56
 
56
57
  The above will allow you to post/put from the secure/non-secure urls keeping the original schema.
57
58
 
@@ -60,6 +61,18 @@ To set HSTS expiry and subdomain inclusion (defaults: one year, true). Strict op
60
61
  config.middleware.use Rack::SslEnforcer, :hsts => { :expires => 500, :subdomains => false }
61
62
  config.middleware.use Rack::SslEnforcer, :hsts => true # equivalent to { :expires => 31536000, :subdomains => true }
62
63
 
64
+ Finally you might want to share a cookie based session between http and https.
65
+ This is not possible by default with Rack::SslEnforcer for security reasons.
66
+ See: [http://en.wikipedia.org/wiki/HTTP_cookie#Cookie_theft_and_session_hijacking]
67
+
68
+ Nevertheless, you can set the option :force_secure_cookies to false in order to be able to share a cookie based session between http and https:
69
+
70
+ config.middleware.use Rack::SslEnforcer, :only => "/login", :force_secure_cookies => false
71
+
72
+ But be aware that if you do so, you have to make sure that the content of you cookie is encoded.
73
+ This can be done using a coder with Rack::Session::Cookie.
74
+ See: [https://github.com/rack/rack/blob/master/lib/rack/session/cookie.rb#L28-42]
75
+
63
76
 
64
77
  == TODO
65
78
 
@@ -1,8 +1,23 @@
1
1
  module Rack
2
2
  class SslEnforcer
3
3
 
4
- def initialize(app, options = {})
5
- @app, @options = app, options
4
+ # Warning: If you set the option force_secure_cookies to false, make sure that your cookies
5
+ # are encoded and that you understand the consequences (see documentation)
6
+ def initialize(app, options={})
7
+ default_options = {
8
+ :redirect_to => nil,
9
+ :only => nil,
10
+ :only_hosts => nil,
11
+ :except => nil,
12
+ :except_hosts => nil,
13
+ :strict => false,
14
+ :mixed => false,
15
+ :hsts => nil,
16
+ :http_port => nil,
17
+ :https_port => nil,
18
+ :force_secure_cookies => true
19
+ }
20
+ @app, @options = app, default_options.merge(options)
6
21
  end
7
22
 
8
23
  def call(env)
@@ -14,12 +29,12 @@ module Rack
14
29
  end
15
30
 
16
31
  if scheme
17
- location = replace_scheme(@req, scheme).url
32
+ location = replace_scheme(@req, scheme)
18
33
  body = "<html><body>You are being <a href=\"#{location}\">redirected</a>.</body></html>"
19
34
  [301, { 'Content-Type' => 'text/html', 'Location' => location }, [body]]
20
35
  elsif ssl_request?(env)
21
36
  status, headers, body = @app.call(env)
22
- flag_cookies_as_secure!(headers)
37
+ flag_cookies_as_secure!(headers) if @options[:force_secure_cookies]
23
38
  set_hsts_headers!(headers) if @options[:hsts] && !@options[:strict]
24
39
  [status, headers, body]
25
40
  else
@@ -75,7 +90,7 @@ module Rack
75
90
  end
76
91
 
77
92
  def enforce_ssl_for?(keys, req)
78
- if keys.any? {|option| @options.key?(option)}
93
+ if keys.any? { |option| @options[option] }
79
94
  keys.any? do |key|
80
95
  rules = [@options[key]].flatten.compact
81
96
  unless rules.empty?
@@ -92,9 +107,9 @@ module Rack
92
107
  def enforce_ssl?(req)
93
108
  path_keys = [:only, :except]
94
109
  hosts_keys = [:only_hosts, :except_hosts]
95
- if hosts_keys.any? {|option| @options.key?(option)}
110
+ if hosts_keys.any? { |option| @options[option] }
96
111
  if enforce_ssl_for?(hosts_keys, req)
97
- if path_keys.any? {|option| @options.key?(option)}
112
+ if path_keys.any? { |option| @options[option] }
98
113
  enforce_ssl_for?(path_keys, req)
99
114
  else
100
115
  true
@@ -102,7 +117,7 @@ module Rack
102
117
  else
103
118
  false
104
119
  end
105
- elsif path_keys.any? {|option| @options.key?(option)}
120
+ elsif path_keys.any? { |option| @options[option] }
106
121
  enforce_ssl_for?(path_keys, req)
107
122
  else
108
123
  true
@@ -116,35 +131,38 @@ module Rack
116
131
  else
117
132
  uri = nil
118
133
  end
119
- Rack::Request.new(req.env.merge(
120
- 'rack.url_scheme' => scheme,
121
- 'HTTP_X_FORWARDED_PROTO' => scheme,
122
- 'HTTP_X_FORWARDED_PORT' => port_for(scheme).to_s,
123
- 'SERVER_PORT' => port_for(scheme).to_s
124
- ).merge(uri ? {'HTTP_HOST' => uri} : {}))
134
+ host = uri || req.host
135
+ port = port_for(scheme).to_s
136
+
137
+ URI.parse("#{scheme}://#{host}:#{port}#{req.fullpath}").to_s
125
138
  end
126
139
 
127
140
  def port_for(scheme)
128
- scheme == 'https' ? 443 : 80
141
+ if scheme == 'https'
142
+ @options[:https_port] || 443
143
+ else
144
+ @options[:http_port] || 80
145
+ end
129
146
  end
130
147
 
131
- # see http://en.wikipedia.org/wiki/HTTP_cookie#Cookie_hijacking
148
+ # see http://en.wikipedia.org/wiki/HTTP_cookie#Cookie_theft_and_session_hijacking
132
149
  def flag_cookies_as_secure!(headers)
133
150
  if cookies = headers['Set-Cookie']
134
- headers['Set-Cookie'] = cookies.split("\n").map { |cookie|
135
- if cookie !~ / secure;/
136
- "#{cookie}; secure"
137
- else
138
- cookie
139
- end
140
- }.join("\n")
151
+ # Support Rails 2.3 / Rack 1.1 arrays as headers
152
+ unless cookies.is_a?(Array)
153
+ cookies = cookies.split("\n")
154
+ end
155
+
156
+ headers['Set-Cookie'] = cookies.map do |cookie|
157
+ cookie !~ / secure;/ ? "#{cookie}; secure" : cookie
158
+ end.join("\n")
141
159
  end
142
160
  end
143
161
 
144
162
  # see http://en.wikipedia.org/wiki/Strict_Transport_Security
145
163
  def set_hsts_headers!(headers)
146
164
  opts = { :expires => 31536000, :subdomains => true }
147
- opts.merge!(@options[:hsts]) if @options[:hsts].is_a? Hash
165
+ opts.merge!(@options[:hsts])
148
166
  value = "max-age=#{opts[:expires]}"
149
167
  value += "; includeSubDomains" if opts[:subdomains]
150
168
  headers.merge!({ 'Strict-Transport-Security' => value })
@@ -0,0 +1,3679 @@
1
+ !RBIX
2
+ 10937318184790222022
3
+ x
4
+ M
5
+ 1
6
+ n
7
+ n
8
+ x
9
+ 10
10
+ __script__
11
+ i
12
+ 28
13
+ 99
14
+ 7
15
+ 0
16
+ 65
17
+ 49
18
+ 1
19
+ 2
20
+ 13
21
+ 99
22
+ 12
23
+ 7
24
+ 2
25
+ 12
26
+ 7
27
+ 3
28
+ 12
29
+ 65
30
+ 12
31
+ 49
32
+ 4
33
+ 4
34
+ 15
35
+ 49
36
+ 2
37
+ 0
38
+ 15
39
+ 2
40
+ 11
41
+ I
42
+ 6
43
+ I
44
+ 0
45
+ I
46
+ 0
47
+ I
48
+ 0
49
+ n
50
+ p
51
+ 5
52
+ x
53
+ 4
54
+ Rack
55
+ x
56
+ 11
57
+ open_module
58
+ x
59
+ 15
60
+ __module_init__
61
+ M
62
+ 1
63
+ n
64
+ n
65
+ x
66
+ 4
67
+ Rack
68
+ i
69
+ 29
70
+ 5
71
+ 66
72
+ 99
73
+ 7
74
+ 0
75
+ 1
76
+ 65
77
+ 49
78
+ 1
79
+ 3
80
+ 13
81
+ 99
82
+ 12
83
+ 7
84
+ 2
85
+ 12
86
+ 7
87
+ 3
88
+ 12
89
+ 65
90
+ 12
91
+ 49
92
+ 4
93
+ 4
94
+ 15
95
+ 49
96
+ 2
97
+ 0
98
+ 11
99
+ I
100
+ 6
101
+ I
102
+ 0
103
+ I
104
+ 0
105
+ I
106
+ 0
107
+ n
108
+ p
109
+ 5
110
+ x
111
+ 11
112
+ SslEnforcer
113
+ x
114
+ 10
115
+ open_class
116
+ x
117
+ 14
118
+ __class_init__
119
+ M
120
+ 1
121
+ n
122
+ n
123
+ x
124
+ 11
125
+ SslEnforcer
126
+ i
127
+ 174
128
+ 5
129
+ 66
130
+ 99
131
+ 7
132
+ 0
133
+ 7
134
+ 1
135
+ 65
136
+ 67
137
+ 49
138
+ 2
139
+ 0
140
+ 49
141
+ 3
142
+ 4
143
+ 15
144
+ 99
145
+ 7
146
+ 4
147
+ 7
148
+ 5
149
+ 65
150
+ 67
151
+ 49
152
+ 2
153
+ 0
154
+ 49
155
+ 3
156
+ 4
157
+ 15
158
+ 5
159
+ 48
160
+ 6
161
+ 15
162
+ 99
163
+ 7
164
+ 7
165
+ 7
166
+ 8
167
+ 65
168
+ 67
169
+ 49
170
+ 2
171
+ 0
172
+ 49
173
+ 3
174
+ 4
175
+ 15
176
+ 99
177
+ 7
178
+ 9
179
+ 7
180
+ 10
181
+ 65
182
+ 67
183
+ 49
184
+ 2
185
+ 0
186
+ 49
187
+ 3
188
+ 4
189
+ 15
190
+ 99
191
+ 7
192
+ 11
193
+ 7
194
+ 12
195
+ 65
196
+ 67
197
+ 49
198
+ 2
199
+ 0
200
+ 49
201
+ 3
202
+ 4
203
+ 15
204
+ 99
205
+ 7
206
+ 13
207
+ 7
208
+ 14
209
+ 65
210
+ 67
211
+ 49
212
+ 2
213
+ 0
214
+ 49
215
+ 3
216
+ 4
217
+ 15
218
+ 99
219
+ 7
220
+ 15
221
+ 7
222
+ 16
223
+ 65
224
+ 67
225
+ 49
226
+ 2
227
+ 0
228
+ 49
229
+ 3
230
+ 4
231
+ 15
232
+ 99
233
+ 7
234
+ 17
235
+ 7
236
+ 18
237
+ 65
238
+ 67
239
+ 49
240
+ 2
241
+ 0
242
+ 49
243
+ 3
244
+ 4
245
+ 15
246
+ 99
247
+ 7
248
+ 19
249
+ 7
250
+ 20
251
+ 65
252
+ 67
253
+ 49
254
+ 2
255
+ 0
256
+ 49
257
+ 3
258
+ 4
259
+ 15
260
+ 99
261
+ 7
262
+ 21
263
+ 7
264
+ 22
265
+ 65
266
+ 67
267
+ 49
268
+ 2
269
+ 0
270
+ 49
271
+ 3
272
+ 4
273
+ 15
274
+ 99
275
+ 7
276
+ 23
277
+ 7
278
+ 24
279
+ 65
280
+ 67
281
+ 49
282
+ 2
283
+ 0
284
+ 49
285
+ 3
286
+ 4
287
+ 15
288
+ 99
289
+ 7
290
+ 25
291
+ 7
292
+ 26
293
+ 65
294
+ 67
295
+ 49
296
+ 2
297
+ 0
298
+ 49
299
+ 3
300
+ 4
301
+ 11
302
+ I
303
+ 5
304
+ I
305
+ 0
306
+ I
307
+ 0
308
+ I
309
+ 0
310
+ n
311
+ p
312
+ 27
313
+ x
314
+ 10
315
+ initialize
316
+ M
317
+ 1
318
+ n
319
+ n
320
+ x
321
+ 10
322
+ initialize
323
+ i
324
+ 146
325
+ 23
326
+ 1
327
+ 10
328
+ 14
329
+ 44
330
+ 43
331
+ 0
332
+ 78
333
+ 49
334
+ 1
335
+ 1
336
+ 19
337
+ 1
338
+ 15
339
+ 44
340
+ 43
341
+ 0
342
+ 4
343
+ 9
344
+ 49
345
+ 1
346
+ 1
347
+ 13
348
+ 7
349
+ 2
350
+ 1
351
+ 49
352
+ 3
353
+ 2
354
+ 15
355
+ 13
356
+ 7
357
+ 4
358
+ 1
359
+ 49
360
+ 3
361
+ 2
362
+ 15
363
+ 13
364
+ 7
365
+ 5
366
+ 1
367
+ 49
368
+ 3
369
+ 2
370
+ 15
371
+ 13
372
+ 7
373
+ 6
374
+ 1
375
+ 49
376
+ 3
377
+ 2
378
+ 15
379
+ 13
380
+ 7
381
+ 7
382
+ 1
383
+ 49
384
+ 3
385
+ 2
386
+ 15
387
+ 13
388
+ 7
389
+ 8
390
+ 3
391
+ 49
392
+ 3
393
+ 2
394
+ 15
395
+ 13
396
+ 7
397
+ 9
398
+ 3
399
+ 49
400
+ 3
401
+ 2
402
+ 15
403
+ 13
404
+ 7
405
+ 10
406
+ 1
407
+ 49
408
+ 3
409
+ 2
410
+ 15
411
+ 13
412
+ 7
413
+ 11
414
+ 2
415
+ 49
416
+ 3
417
+ 2
418
+ 15
419
+ 19
420
+ 2
421
+ 15
422
+ 20
423
+ 0
424
+ 20
425
+ 2
426
+ 20
427
+ 1
428
+ 49
429
+ 12
430
+ 1
431
+ 17
432
+ 2
433
+ 38
434
+ 13
435
+ 15
436
+ 38
437
+ 14
438
+ 15
439
+ 2
440
+ 15
441
+ 20
442
+ 1
443
+ 7
444
+ 11
445
+ 49
446
+ 15
447
+ 1
448
+ 3
449
+ 83
450
+ 16
451
+ 9
452
+ 144
453
+ 99
454
+ 43
455
+ 17
456
+ 7
457
+ 18
458
+ 49
459
+ 15
460
+ 1
461
+ 7
462
+ 19
463
+ 64
464
+ 49
465
+ 20
466
+ 1
467
+ 8
468
+ 145
469
+ 1
470
+ 11
471
+ I
472
+ 7
473
+ I
474
+ 3
475
+ I
476
+ 1
477
+ I
478
+ 2
479
+ n
480
+ p
481
+ 21
482
+ x
483
+ 4
484
+ Hash
485
+ x
486
+ 16
487
+ new_from_literal
488
+ x
489
+ 11
490
+ redirect_to
491
+ x
492
+ 3
493
+ []=
494
+ x
495
+ 4
496
+ only
497
+ x
498
+ 10
499
+ only_hosts
500
+ x
501
+ 6
502
+ except
503
+ x
504
+ 12
505
+ except_hosts
506
+ x
507
+ 6
508
+ strict
509
+ x
510
+ 5
511
+ mixed
512
+ x
513
+ 4
514
+ hsts
515
+ x
516
+ 20
517
+ force_secure_cookies
518
+ x
519
+ 5
520
+ merge
521
+ x
522
+ 4
523
+ @app
524
+ x
525
+ 8
526
+ @options
527
+ x
528
+ 2
529
+ []
530
+ x
531
+ 2
532
+ ==
533
+ x
534
+ 7
535
+ Globals
536
+ x
537
+ 7
538
+ $stderr
539
+ s
540
+ 157
541
+ WARN -- : The option :force_secure_cookies is set to false so make sure your cookies are encoded and that you understand the consequences (see documentation)
542
+ x
543
+ 4
544
+ puts
545
+ p
546
+ 29
547
+ I
548
+ -1
549
+ I
550
+ 4
551
+ I
552
+ e
553
+ I
554
+ f
555
+ I
556
+ 17
557
+ I
558
+ 6
559
+ I
560
+ 1f
561
+ I
562
+ 7
563
+ I
564
+ 27
565
+ I
566
+ 8
567
+ I
568
+ 2f
569
+ I
570
+ 9
571
+ I
572
+ 37
573
+ I
574
+ a
575
+ I
576
+ 3f
577
+ I
578
+ b
579
+ I
580
+ 47
581
+ I
582
+ c
583
+ I
584
+ 4f
585
+ I
586
+ d
587
+ I
588
+ 57
589
+ I
590
+ e
591
+ I
592
+ 5e
593
+ I
594
+ 5
595
+ I
596
+ 61
597
+ I
598
+ 10
599
+ I
600
+ 74
601
+ I
602
+ 11
603
+ I
604
+ 92
605
+ x
606
+ 85
607
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
608
+ p
609
+ 3
610
+ x
611
+ 3
612
+ app
613
+ x
614
+ 7
615
+ options
616
+ x
617
+ 15
618
+ default_options
619
+ x
620
+ 17
621
+ method_visibility
622
+ x
623
+ 15
624
+ add_defn_method
625
+ x
626
+ 4
627
+ call
628
+ M
629
+ 1
630
+ n
631
+ n
632
+ x
633
+ 4
634
+ call
635
+ i
636
+ 296
637
+ 45
638
+ 0
639
+ 1
640
+ 43
641
+ 2
642
+ 13
643
+ 71
644
+ 3
645
+ 47
646
+ 9
647
+ 25
648
+ 47
649
+ 49
650
+ 4
651
+ 0
652
+ 13
653
+ 20
654
+ 0
655
+ 47
656
+ 49
657
+ 5
658
+ 1
659
+ 15
660
+ 8
661
+ 30
662
+ 20
663
+ 0
664
+ 49
665
+ 3
666
+ 1
667
+ 38
668
+ 6
669
+ 15
670
+ 5
671
+ 39
672
+ 6
673
+ 47
674
+ 49
675
+ 7
676
+ 1
677
+ 13
678
+ 9
679
+ 57
680
+ 15
681
+ 5
682
+ 20
683
+ 0
684
+ 47
685
+ 49
686
+ 8
687
+ 1
688
+ 10
689
+ 56
690
+ 2
691
+ 8
692
+ 57
693
+ 3
694
+ 9
695
+ 78
696
+ 5
697
+ 20
698
+ 0
699
+ 47
700
+ 49
701
+ 9
702
+ 1
703
+ 9
704
+ 71
705
+ 1
706
+ 8
707
+ 76
708
+ 7
709
+ 10
710
+ 64
711
+ 19
712
+ 1
713
+ 8
714
+ 117
715
+ 5
716
+ 20
717
+ 0
718
+ 47
719
+ 49
720
+ 9
721
+ 1
722
+ 13
723
+ 9
724
+ 107
725
+ 15
726
+ 39
727
+ 11
728
+ 7
729
+ 12
730
+ 49
731
+ 13
732
+ 1
733
+ 13
734
+ 10
735
+ 107
736
+ 15
737
+ 5
738
+ 20
739
+ 0
740
+ 47
741
+ 49
742
+ 8
743
+ 1
744
+ 9
745
+ 116
746
+ 7
747
+ 14
748
+ 64
749
+ 19
750
+ 1
751
+ 8
752
+ 117
753
+ 1
754
+ 15
755
+ 20
756
+ 1
757
+ 9
758
+ 189
759
+ 5
760
+ 39
761
+ 6
762
+ 20
763
+ 1
764
+ 47
765
+ 49
766
+ 15
767
+ 2
768
+ 49
769
+ 16
770
+ 0
771
+ 19
772
+ 2
773
+ 15
774
+ 7
775
+ 17
776
+ 20
777
+ 2
778
+ 47
779
+ 101
780
+ 18
781
+ 7
782
+ 19
783
+ 63
784
+ 3
785
+ 19
786
+ 3
787
+ 15
788
+ 7
789
+ 20
790
+ 44
791
+ 43
792
+ 21
793
+ 80
794
+ 49
795
+ 22
796
+ 1
797
+ 13
798
+ 7
799
+ 23
800
+ 64
801
+ 7
802
+ 24
803
+ 64
804
+ 49
805
+ 25
806
+ 2
807
+ 15
808
+ 13
809
+ 7
810
+ 26
811
+ 64
812
+ 20
813
+ 2
814
+ 49
815
+ 25
816
+ 2
817
+ 15
818
+ 20
819
+ 3
820
+ 35
821
+ 1
822
+ 35
823
+ 3
824
+ 8
825
+ 295
826
+ 5
827
+ 20
828
+ 0
829
+ 47
830
+ 49
831
+ 9
832
+ 1
833
+ 9
834
+ 288
835
+ 39
836
+ 27
837
+ 20
838
+ 0
839
+ 49
840
+ 28
841
+ 1
842
+ 97
843
+ 37
844
+ 19
845
+ 4
846
+ 15
847
+ 37
848
+ 19
849
+ 5
850
+ 15
851
+ 37
852
+ 19
853
+ 3
854
+ 15
855
+ 15
856
+ 2
857
+ 15
858
+ 39
859
+ 11
860
+ 7
861
+ 29
862
+ 49
863
+ 13
864
+ 1
865
+ 9
866
+ 239
867
+ 5
868
+ 20
869
+ 5
870
+ 47
871
+ 49
872
+ 30
873
+ 1
874
+ 8
875
+ 240
876
+ 1
877
+ 15
878
+ 39
879
+ 11
880
+ 7
881
+ 31
882
+ 49
883
+ 13
884
+ 1
885
+ 13
886
+ 9
887
+ 265
888
+ 15
889
+ 39
890
+ 11
891
+ 7
892
+ 12
893
+ 49
894
+ 13
895
+ 1
896
+ 10
897
+ 264
898
+ 2
899
+ 8
900
+ 265
901
+ 3
902
+ 9
903
+ 276
904
+ 5
905
+ 20
906
+ 5
907
+ 47
908
+ 49
909
+ 32
910
+ 1
911
+ 8
912
+ 277
913
+ 1
914
+ 15
915
+ 20
916
+ 4
917
+ 20
918
+ 5
919
+ 20
920
+ 3
921
+ 35
922
+ 3
923
+ 8
924
+ 295
925
+ 39
926
+ 27
927
+ 20
928
+ 0
929
+ 49
930
+ 28
931
+ 1
932
+ 11
933
+ I
934
+ b
935
+ I
936
+ 6
937
+ I
938
+ 1
939
+ I
940
+ 1
941
+ n
942
+ p
943
+ 33
944
+ x
945
+ 4
946
+ Rack
947
+ n
948
+ x
949
+ 7
950
+ Request
951
+ x
952
+ 3
953
+ new
954
+ x
955
+ 8
956
+ allocate
957
+ x
958
+ 10
959
+ initialize
960
+ x
961
+ 4
962
+ @req
963
+ x
964
+ 12
965
+ enforce_ssl?
966
+ x
967
+ 16
968
+ enforce_non_ssl?
969
+ x
970
+ 12
971
+ ssl_request?
972
+ s
973
+ 5
974
+ https
975
+ x
976
+ 8
977
+ @options
978
+ x
979
+ 6
980
+ strict
981
+ x
982
+ 2
983
+ []
984
+ s
985
+ 4
986
+ http
987
+ x
988
+ 14
989
+ replace_scheme
990
+ x
991
+ 3
992
+ url
993
+ s
994
+ 35
995
+ <html><body>You are being <a href="
996
+ x
997
+ 4
998
+ to_s
999
+ s
1000
+ 31
1001
+ ">redirected</a>.</body></html>
1002
+ I
1003
+ 12d
1004
+ x
1005
+ 4
1006
+ Hash
1007
+ x
1008
+ 16
1009
+ new_from_literal
1010
+ s
1011
+ 12
1012
+ Content-Type
1013
+ s
1014
+ 9
1015
+ text/html
1016
+ x
1017
+ 3
1018
+ []=
1019
+ s
1020
+ 8
1021
+ Location
1022
+ x
1023
+ 4
1024
+ @app
1025
+ x
1026
+ 4
1027
+ call
1028
+ x
1029
+ 20
1030
+ force_secure_cookies
1031
+ x
1032
+ 23
1033
+ flag_cookies_as_secure!
1034
+ x
1035
+ 4
1036
+ hsts
1037
+ x
1038
+ 17
1039
+ set_hsts_headers!
1040
+ p
1041
+ 35
1042
+ I
1043
+ -1
1044
+ I
1045
+ 14
1046
+ I
1047
+ 0
1048
+ I
1049
+ 15
1050
+ I
1051
+ 21
1052
+ I
1053
+ 17
1054
+ I
1055
+ 3b
1056
+ I
1057
+ 18
1058
+ I
1059
+ 4e
1060
+ I
1061
+ 19
1062
+ I
1063
+ 6d
1064
+ I
1065
+ 1a
1066
+ I
1067
+ 74
1068
+ I
1069
+ 19
1070
+ I
1071
+ 76
1072
+ I
1073
+ 1d
1074
+ I
1075
+ 7a
1076
+ I
1077
+ 1e
1078
+ I
1079
+ 89
1080
+ I
1081
+ 1f
1082
+ I
1083
+ 97
1084
+ I
1085
+ 20
1086
+ I
1087
+ bd
1088
+ I
1089
+ 21
1090
+ I
1091
+ c6
1092
+ I
1093
+ 22
1094
+ I
1095
+ dd
1096
+ I
1097
+ 23
1098
+ I
1099
+ f1
1100
+ I
1101
+ 24
1102
+ I
1103
+ 116
1104
+ I
1105
+ 25
1106
+ I
1107
+ 120
1108
+ I
1109
+ 27
1110
+ I
1111
+ 128
1112
+ x
1113
+ 85
1114
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
1115
+ p
1116
+ 6
1117
+ x
1118
+ 3
1119
+ env
1120
+ x
1121
+ 6
1122
+ scheme
1123
+ x
1124
+ 8
1125
+ location
1126
+ x
1127
+ 4
1128
+ body
1129
+ x
1130
+ 6
1131
+ status
1132
+ x
1133
+ 7
1134
+ headers
1135
+ x
1136
+ 7
1137
+ private
1138
+ x
1139
+ 16
1140
+ enforce_non_ssl?
1141
+ M
1142
+ 1
1143
+ n
1144
+ n
1145
+ x
1146
+ 16
1147
+ enforce_non_ssl?
1148
+ i
1149
+ 37
1150
+ 39
1151
+ 0
1152
+ 7
1153
+ 1
1154
+ 49
1155
+ 2
1156
+ 1
1157
+ 13
1158
+ 9
1159
+ 36
1160
+ 15
1161
+ 7
1162
+ 3
1163
+ 64
1164
+ 7
1165
+ 4
1166
+ 64
1167
+ 35
1168
+ 2
1169
+ 20
1170
+ 0
1171
+ 7
1172
+ 5
1173
+ 64
1174
+ 49
1175
+ 2
1176
+ 1
1177
+ 49
1178
+ 6
1179
+ 1
1180
+ 10
1181
+ 35
1182
+ 2
1183
+ 8
1184
+ 36
1185
+ 3
1186
+ 11
1187
+ I
1188
+ 4
1189
+ I
1190
+ 1
1191
+ I
1192
+ 1
1193
+ I
1194
+ 1
1195
+ n
1196
+ p
1197
+ 7
1198
+ x
1199
+ 8
1200
+ @options
1201
+ x
1202
+ 5
1203
+ mixed
1204
+ x
1205
+ 2
1206
+ []
1207
+ s
1208
+ 4
1209
+ POST
1210
+ s
1211
+ 3
1212
+ PUT
1213
+ s
1214
+ 14
1215
+ REQUEST_METHOD
1216
+ x
1217
+ 8
1218
+ include?
1219
+ p
1220
+ 5
1221
+ I
1222
+ -1
1223
+ I
1224
+ 2d
1225
+ I
1226
+ 0
1227
+ I
1228
+ 2e
1229
+ I
1230
+ 25
1231
+ x
1232
+ 85
1233
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
1234
+ p
1235
+ 1
1236
+ x
1237
+ 3
1238
+ env
1239
+ x
1240
+ 12
1241
+ ssl_request?
1242
+ M
1243
+ 1
1244
+ n
1245
+ n
1246
+ x
1247
+ 12
1248
+ ssl_request?
1249
+ i
1250
+ 13
1251
+ 5
1252
+ 20
1253
+ 0
1254
+ 47
1255
+ 49
1256
+ 0
1257
+ 1
1258
+ 7
1259
+ 1
1260
+ 64
1261
+ 83
1262
+ 2
1263
+ 11
1264
+ I
1265
+ 3
1266
+ I
1267
+ 1
1268
+ I
1269
+ 1
1270
+ I
1271
+ 1
1272
+ n
1273
+ p
1274
+ 3
1275
+ x
1276
+ 6
1277
+ scheme
1278
+ s
1279
+ 5
1280
+ https
1281
+ x
1282
+ 2
1283
+ ==
1284
+ p
1285
+ 5
1286
+ I
1287
+ -1
1288
+ I
1289
+ 31
1290
+ I
1291
+ 0
1292
+ I
1293
+ 32
1294
+ I
1295
+ d
1296
+ x
1297
+ 85
1298
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
1299
+ p
1300
+ 1
1301
+ x
1302
+ 3
1303
+ env
1304
+ x
1305
+ 6
1306
+ scheme
1307
+ M
1308
+ 1
1309
+ n
1310
+ n
1311
+ x
1312
+ 6
1313
+ scheme
1314
+ i
1315
+ 59
1316
+ 20
1317
+ 0
1318
+ 7
1319
+ 0
1320
+ 64
1321
+ 49
1322
+ 1
1323
+ 1
1324
+ 7
1325
+ 2
1326
+ 64
1327
+ 83
1328
+ 3
1329
+ 9
1330
+ 20
1331
+ 7
1332
+ 4
1333
+ 64
1334
+ 8
1335
+ 58
1336
+ 20
1337
+ 0
1338
+ 7
1339
+ 5
1340
+ 64
1341
+ 49
1342
+ 1
1343
+ 1
1344
+ 9
1345
+ 50
1346
+ 20
1347
+ 0
1348
+ 7
1349
+ 5
1350
+ 64
1351
+ 49
1352
+ 1
1353
+ 1
1354
+ 7
1355
+ 6
1356
+ 64
1357
+ 49
1358
+ 7
1359
+ 1
1360
+ 78
1361
+ 49
1362
+ 1
1363
+ 1
1364
+ 8
1365
+ 58
1366
+ 20
1367
+ 0
1368
+ 7
1369
+ 8
1370
+ 64
1371
+ 49
1372
+ 1
1373
+ 1
1374
+ 11
1375
+ I
1376
+ 3
1377
+ I
1378
+ 1
1379
+ I
1380
+ 1
1381
+ I
1382
+ 1
1383
+ n
1384
+ p
1385
+ 9
1386
+ s
1387
+ 5
1388
+ HTTPS
1389
+ x
1390
+ 2
1391
+ []
1392
+ s
1393
+ 2
1394
+ on
1395
+ x
1396
+ 2
1397
+ ==
1398
+ s
1399
+ 5
1400
+ https
1401
+ s
1402
+ 22
1403
+ HTTP_X_FORWARDED_PROTO
1404
+ s
1405
+ 1
1406
+ ,
1407
+ x
1408
+ 5
1409
+ split
1410
+ s
1411
+ 15
1412
+ rack.url_scheme
1413
+ p
1414
+ 13
1415
+ I
1416
+ -1
1417
+ I
1418
+ 36
1419
+ I
1420
+ 0
1421
+ I
1422
+ 37
1423
+ I
1424
+ f
1425
+ I
1426
+ 38
1427
+ I
1428
+ 14
1429
+ I
1430
+ 39
1431
+ I
1432
+ 1e
1433
+ I
1434
+ 3a
1435
+ I
1436
+ 32
1437
+ I
1438
+ 3c
1439
+ I
1440
+ 3b
1441
+ x
1442
+ 85
1443
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
1444
+ p
1445
+ 1
1446
+ x
1447
+ 3
1448
+ env
1449
+ x
1450
+ 8
1451
+ matches?
1452
+ M
1453
+ 1
1454
+ n
1455
+ n
1456
+ x
1457
+ 8
1458
+ matches?
1459
+ i
1460
+ 235
1461
+ 20
1462
+ 1
1463
+ 45
1464
+ 0
1465
+ 1
1466
+ 49
1467
+ 2
1468
+ 1
1469
+ 9
1470
+ 116
1471
+ 20
1472
+ 0
1473
+ 13
1474
+ 7
1475
+ 3
1476
+ 12
1477
+ 49
1478
+ 4
1479
+ 1
1480
+ 9
1481
+ 34
1482
+ 15
1483
+ 20
1484
+ 2
1485
+ 49
1486
+ 5
1487
+ 0
1488
+ 20
1489
+ 1
1490
+ 49
1491
+ 6
1492
+ 1
1493
+ 8
1494
+ 114
1495
+ 13
1496
+ 7
1497
+ 7
1498
+ 12
1499
+ 49
1500
+ 4
1501
+ 1
1502
+ 9
1503
+ 62
1504
+ 15
1505
+ 20
1506
+ 2
1507
+ 49
1508
+ 5
1509
+ 0
1510
+ 20
1511
+ 1
1512
+ 49
1513
+ 6
1514
+ 1
1515
+ 10
1516
+ 59
1517
+ 2
1518
+ 8
1519
+ 60
1520
+ 3
1521
+ 8
1522
+ 114
1523
+ 13
1524
+ 7
1525
+ 8
1526
+ 12
1527
+ 49
1528
+ 4
1529
+ 1
1530
+ 9
1531
+ 84
1532
+ 15
1533
+ 20
1534
+ 2
1535
+ 49
1536
+ 9
1537
+ 0
1538
+ 20
1539
+ 1
1540
+ 49
1541
+ 6
1542
+ 1
1543
+ 8
1544
+ 114
1545
+ 13
1546
+ 7
1547
+ 10
1548
+ 12
1549
+ 49
1550
+ 4
1551
+ 1
1552
+ 9
1553
+ 112
1554
+ 15
1555
+ 20
1556
+ 2
1557
+ 49
1558
+ 9
1559
+ 0
1560
+ 20
1561
+ 1
1562
+ 49
1563
+ 6
1564
+ 1
1565
+ 10
1566
+ 109
1567
+ 2
1568
+ 8
1569
+ 110
1570
+ 3
1571
+ 8
1572
+ 114
1573
+ 15
1574
+ 1
1575
+ 8
1576
+ 234
1577
+ 20
1578
+ 0
1579
+ 13
1580
+ 7
1581
+ 3
1582
+ 12
1583
+ 49
1584
+ 4
1585
+ 1
1586
+ 9
1587
+ 148
1588
+ 15
1589
+ 20
1590
+ 2
1591
+ 49
1592
+ 5
1593
+ 0
1594
+ 78
1595
+ 20
1596
+ 1
1597
+ 49
1598
+ 11
1599
+ 0
1600
+ 49
1601
+ 12
1602
+ 2
1603
+ 20
1604
+ 1
1605
+ 83
1606
+ 13
1607
+ 8
1608
+ 234
1609
+ 13
1610
+ 7
1611
+ 7
1612
+ 12
1613
+ 49
1614
+ 4
1615
+ 1
1616
+ 9
1617
+ 184
1618
+ 15
1619
+ 20
1620
+ 2
1621
+ 49
1622
+ 5
1623
+ 0
1624
+ 78
1625
+ 20
1626
+ 1
1627
+ 49
1628
+ 11
1629
+ 0
1630
+ 49
1631
+ 12
1632
+ 2
1633
+ 20
1634
+ 1
1635
+ 83
1636
+ 13
1637
+ 10
1638
+ 181
1639
+ 2
1640
+ 8
1641
+ 182
1642
+ 3
1643
+ 8
1644
+ 234
1645
+ 13
1646
+ 7
1647
+ 8
1648
+ 12
1649
+ 49
1650
+ 4
1651
+ 1
1652
+ 9
1653
+ 205
1654
+ 15
1655
+ 20
1656
+ 2
1657
+ 49
1658
+ 9
1659
+ 0
1660
+ 20
1661
+ 1
1662
+ 83
1663
+ 13
1664
+ 8
1665
+ 234
1666
+ 13
1667
+ 7
1668
+ 10
1669
+ 12
1670
+ 49
1671
+ 4
1672
+ 1
1673
+ 9
1674
+ 232
1675
+ 15
1676
+ 20
1677
+ 2
1678
+ 49
1679
+ 9
1680
+ 0
1681
+ 20
1682
+ 1
1683
+ 83
1684
+ 13
1685
+ 10
1686
+ 229
1687
+ 2
1688
+ 8
1689
+ 230
1690
+ 3
1691
+ 8
1692
+ 234
1693
+ 15
1694
+ 1
1695
+ 11
1696
+ I
1697
+ 6
1698
+ I
1699
+ 3
1700
+ I
1701
+ 3
1702
+ I
1703
+ 3
1704
+ n
1705
+ p
1706
+ 14
1707
+ x
1708
+ 6
1709
+ Regexp
1710
+ n
1711
+ x
1712
+ 5
1713
+ is_a?
1714
+ x
1715
+ 4
1716
+ only
1717
+ x
1718
+ 3
1719
+ ===
1720
+ x
1721
+ 4
1722
+ path
1723
+ x
1724
+ 2
1725
+ =~
1726
+ x
1727
+ 6
1728
+ except
1729
+ x
1730
+ 10
1731
+ only_hosts
1732
+ x
1733
+ 4
1734
+ host
1735
+ x
1736
+ 12
1737
+ except_hosts
1738
+ x
1739
+ 6
1740
+ length
1741
+ x
1742
+ 2
1743
+ []
1744
+ x
1745
+ 2
1746
+ ==
1747
+ p
1748
+ 45
1749
+ I
1750
+ -1
1751
+ I
1752
+ 40
1753
+ I
1754
+ 0
1755
+ I
1756
+ 41
1757
+ I
1758
+ a
1759
+ I
1760
+ 42
1761
+ I
1762
+ c
1763
+ I
1764
+ 43
1765
+ I
1766
+ 16
1767
+ I
1768
+ 44
1769
+ I
1770
+ 22
1771
+ I
1772
+ 45
1773
+ I
1774
+ 2c
1775
+ I
1776
+ 46
1777
+ I
1778
+ 3e
1779
+ I
1780
+ 47
1781
+ I
1782
+ 48
1783
+ I
1784
+ 48
1785
+ I
1786
+ 54
1787
+ I
1788
+ 49
1789
+ I
1790
+ 5e
1791
+ I
1792
+ 4a
1793
+ I
1794
+ 71
1795
+ I
1796
+ 42
1797
+ I
1798
+ 74
1799
+ I
1800
+ 4d
1801
+ I
1802
+ 76
1803
+ I
1804
+ 4e
1805
+ I
1806
+ 80
1807
+ I
1808
+ 4f
1809
+ I
1810
+ 94
1811
+ I
1812
+ 50
1813
+ I
1814
+ 9e
1815
+ I
1816
+ 51
1817
+ I
1818
+ b8
1819
+ I
1820
+ 52
1821
+ I
1822
+ c2
1823
+ I
1824
+ 53
1825
+ I
1826
+ cd
1827
+ I
1828
+ 54
1829
+ I
1830
+ d7
1831
+ I
1832
+ 55
1833
+ I
1834
+ e9
1835
+ I
1836
+ 4d
1837
+ I
1838
+ eb
1839
+ x
1840
+ 85
1841
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
1842
+ p
1843
+ 3
1844
+ x
1845
+ 3
1846
+ key
1847
+ x
1848
+ 7
1849
+ pattern
1850
+ x
1851
+ 3
1852
+ req
1853
+ x
1854
+ 16
1855
+ enforce_ssl_for?
1856
+ M
1857
+ 1
1858
+ n
1859
+ n
1860
+ x
1861
+ 16
1862
+ enforce_ssl_for?
1863
+ i
1864
+ 20
1865
+ 20
1866
+ 0
1867
+ 56
1868
+ 0
1869
+ 50
1870
+ 1
1871
+ 0
1872
+ 9
1873
+ 18
1874
+ 20
1875
+ 0
1876
+ 56
1877
+ 2
1878
+ 50
1879
+ 1
1880
+ 0
1881
+ 8
1882
+ 19
1883
+ 3
1884
+ 11
1885
+ I
1886
+ 4
1887
+ I
1888
+ 2
1889
+ I
1890
+ 2
1891
+ I
1892
+ 2
1893
+ n
1894
+ p
1895
+ 3
1896
+ M
1897
+ 1
1898
+ p
1899
+ 2
1900
+ x
1901
+ 9
1902
+ for_block
1903
+ t
1904
+ n
1905
+ x
1906
+ 16
1907
+ enforce_ssl_for?
1908
+ i
1909
+ 12
1910
+ 57
1911
+ 19
1912
+ 0
1913
+ 15
1914
+ 39
1915
+ 0
1916
+ 20
1917
+ 0
1918
+ 49
1919
+ 1
1920
+ 1
1921
+ 11
1922
+ I
1923
+ 4
1924
+ I
1925
+ 1
1926
+ I
1927
+ 1
1928
+ I
1929
+ 1
1930
+ n
1931
+ p
1932
+ 2
1933
+ x
1934
+ 8
1935
+ @options
1936
+ x
1937
+ 2
1938
+ []
1939
+ p
1940
+ 3
1941
+ I
1942
+ 0
1943
+ I
1944
+ 5b
1945
+ I
1946
+ c
1947
+ x
1948
+ 85
1949
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
1950
+ p
1951
+ 1
1952
+ x
1953
+ 6
1954
+ option
1955
+ x
1956
+ 4
1957
+ any?
1958
+ M
1959
+ 1
1960
+ p
1961
+ 2
1962
+ x
1963
+ 9
1964
+ for_block
1965
+ t
1966
+ n
1967
+ x
1968
+ 16
1969
+ enforce_ssl_for?
1970
+ i
1971
+ 66
1972
+ 57
1973
+ 19
1974
+ 0
1975
+ 15
1976
+ 39
1977
+ 0
1978
+ 20
1979
+ 0
1980
+ 49
1981
+ 1
1982
+ 1
1983
+ 35
1984
+ 1
1985
+ 49
1986
+ 2
1987
+ 0
1988
+ 49
1989
+ 3
1990
+ 0
1991
+ 19
1992
+ 1
1993
+ 15
1994
+ 20
1995
+ 1
1996
+ 49
1997
+ 4
1998
+ 0
1999
+ 9
2000
+ 32
2001
+ 1
2002
+ 8
2003
+ 65
2004
+ 20
2005
+ 1
2006
+ 20
2007
+ 0
2008
+ 7
2009
+ 5
2010
+ 83
2011
+ 6
2012
+ 13
2013
+ 10
2014
+ 50
2015
+ 15
2016
+ 20
2017
+ 0
2018
+ 7
2019
+ 7
2020
+ 83
2021
+ 6
2022
+ 9
2023
+ 57
2024
+ 7
2025
+ 8
2026
+ 64
2027
+ 8
2028
+ 60
2029
+ 7
2030
+ 9
2031
+ 64
2032
+ 56
2033
+ 10
2034
+ 50
2035
+ 11
2036
+ 1
2037
+ 11
2038
+ I
2039
+ 6
2040
+ I
2041
+ 2
2042
+ I
2043
+ 1
2044
+ I
2045
+ 1
2046
+ n
2047
+ p
2048
+ 12
2049
+ x
2050
+ 8
2051
+ @options
2052
+ x
2053
+ 2
2054
+ []
2055
+ x
2056
+ 7
2057
+ flatten
2058
+ x
2059
+ 7
2060
+ compact
2061
+ x
2062
+ 6
2063
+ empty?
2064
+ x
2065
+ 12
2066
+ except_hosts
2067
+ x
2068
+ 2
2069
+ ==
2070
+ x
2071
+ 6
2072
+ except
2073
+ s
2074
+ 4
2075
+ all?
2076
+ s
2077
+ 4
2078
+ any?
2079
+ M
2080
+ 1
2081
+ p
2082
+ 2
2083
+ x
2084
+ 9
2085
+ for_block
2086
+ t
2087
+ n
2088
+ x
2089
+ 16
2090
+ enforce_ssl_for?
2091
+ i
2092
+ 18
2093
+ 57
2094
+ 19
2095
+ 0
2096
+ 15
2097
+ 5
2098
+ 21
2099
+ 1
2100
+ 0
2101
+ 20
2102
+ 0
2103
+ 21
2104
+ 2
2105
+ 1
2106
+ 47
2107
+ 49
2108
+ 0
2109
+ 3
2110
+ 11
2111
+ I
2112
+ 6
2113
+ I
2114
+ 1
2115
+ I
2116
+ 1
2117
+ I
2118
+ 1
2119
+ n
2120
+ p
2121
+ 1
2122
+ x
2123
+ 8
2124
+ matches?
2125
+ p
2126
+ 5
2127
+ I
2128
+ 0
2129
+ I
2130
+ 5f
2131
+ I
2132
+ 4
2133
+ I
2134
+ 60
2135
+ I
2136
+ 12
2137
+ x
2138
+ 85
2139
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
2140
+ p
2141
+ 1
2142
+ x
2143
+ 7
2144
+ pattern
2145
+ x
2146
+ 4
2147
+ send
2148
+ p
2149
+ 9
2150
+ I
2151
+ 0
2152
+ I
2153
+ 5c
2154
+ I
2155
+ 4
2156
+ I
2157
+ 5d
2158
+ I
2159
+ 16
2160
+ I
2161
+ 5e
2162
+ I
2163
+ 20
2164
+ I
2165
+ 5f
2166
+ I
2167
+ 42
2168
+ x
2169
+ 85
2170
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
2171
+ p
2172
+ 2
2173
+ x
2174
+ 3
2175
+ key
2176
+ x
2177
+ 5
2178
+ rules
2179
+ p
2180
+ 9
2181
+ I
2182
+ -1
2183
+ I
2184
+ 5a
2185
+ I
2186
+ 0
2187
+ I
2188
+ 5b
2189
+ I
2190
+ 9
2191
+ I
2192
+ 5c
2193
+ I
2194
+ 12
2195
+ I
2196
+ 65
2197
+ I
2198
+ 14
2199
+ x
2200
+ 85
2201
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
2202
+ p
2203
+ 2
2204
+ x
2205
+ 4
2206
+ keys
2207
+ x
2208
+ 3
2209
+ req
2210
+ x
2211
+ 12
2212
+ enforce_ssl?
2213
+ M
2214
+ 1
2215
+ n
2216
+ n
2217
+ x
2218
+ 12
2219
+ enforce_ssl?
2220
+ i
2221
+ 86
2222
+ 7
2223
+ 0
2224
+ 7
2225
+ 1
2226
+ 35
2227
+ 2
2228
+ 19
2229
+ 1
2230
+ 15
2231
+ 7
2232
+ 2
2233
+ 7
2234
+ 3
2235
+ 35
2236
+ 2
2237
+ 19
2238
+ 2
2239
+ 15
2240
+ 20
2241
+ 2
2242
+ 56
2243
+ 4
2244
+ 50
2245
+ 5
2246
+ 0
2247
+ 9
2248
+ 64
2249
+ 5
2250
+ 20
2251
+ 2
2252
+ 20
2253
+ 0
2254
+ 47
2255
+ 49
2256
+ 6
2257
+ 2
2258
+ 9
2259
+ 61
2260
+ 20
2261
+ 1
2262
+ 56
2263
+ 7
2264
+ 50
2265
+ 5
2266
+ 0
2267
+ 9
2268
+ 58
2269
+ 5
2270
+ 20
2271
+ 1
2272
+ 20
2273
+ 0
2274
+ 47
2275
+ 49
2276
+ 6
2277
+ 2
2278
+ 8
2279
+ 59
2280
+ 2
2281
+ 8
2282
+ 62
2283
+ 3
2284
+ 8
2285
+ 85
2286
+ 20
2287
+ 1
2288
+ 56
2289
+ 8
2290
+ 50
2291
+ 5
2292
+ 0
2293
+ 9
2294
+ 84
2295
+ 5
2296
+ 20
2297
+ 1
2298
+ 20
2299
+ 0
2300
+ 47
2301
+ 49
2302
+ 6
2303
+ 2
2304
+ 8
2305
+ 85
2306
+ 2
2307
+ 11
2308
+ I
2309
+ 6
2310
+ I
2311
+ 3
2312
+ I
2313
+ 1
2314
+ I
2315
+ 1
2316
+ n
2317
+ p
2318
+ 9
2319
+ x
2320
+ 4
2321
+ only
2322
+ x
2323
+ 6
2324
+ except
2325
+ x
2326
+ 10
2327
+ only_hosts
2328
+ x
2329
+ 12
2330
+ except_hosts
2331
+ M
2332
+ 1
2333
+ p
2334
+ 2
2335
+ x
2336
+ 9
2337
+ for_block
2338
+ t
2339
+ n
2340
+ x
2341
+ 12
2342
+ enforce_ssl?
2343
+ i
2344
+ 12
2345
+ 57
2346
+ 19
2347
+ 0
2348
+ 15
2349
+ 39
2350
+ 0
2351
+ 20
2352
+ 0
2353
+ 49
2354
+ 1
2355
+ 1
2356
+ 11
2357
+ I
2358
+ 4
2359
+ I
2360
+ 1
2361
+ I
2362
+ 1
2363
+ I
2364
+ 1
2365
+ n
2366
+ p
2367
+ 2
2368
+ x
2369
+ 8
2370
+ @options
2371
+ x
2372
+ 2
2373
+ []
2374
+ p
2375
+ 3
2376
+ I
2377
+ 0
2378
+ I
2379
+ 6c
2380
+ I
2381
+ c
2382
+ x
2383
+ 85
2384
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
2385
+ p
2386
+ 1
2387
+ x
2388
+ 6
2389
+ option
2390
+ x
2391
+ 4
2392
+ any?
2393
+ x
2394
+ 16
2395
+ enforce_ssl_for?
2396
+ M
2397
+ 1
2398
+ p
2399
+ 2
2400
+ x
2401
+ 9
2402
+ for_block
2403
+ t
2404
+ n
2405
+ x
2406
+ 12
2407
+ enforce_ssl?
2408
+ i
2409
+ 12
2410
+ 57
2411
+ 19
2412
+ 0
2413
+ 15
2414
+ 39
2415
+ 0
2416
+ 20
2417
+ 0
2418
+ 49
2419
+ 1
2420
+ 1
2421
+ 11
2422
+ I
2423
+ 4
2424
+ I
2425
+ 1
2426
+ I
2427
+ 1
2428
+ I
2429
+ 1
2430
+ n
2431
+ p
2432
+ 2
2433
+ x
2434
+ 8
2435
+ @options
2436
+ x
2437
+ 2
2438
+ []
2439
+ p
2440
+ 3
2441
+ I
2442
+ 0
2443
+ I
2444
+ 6e
2445
+ I
2446
+ c
2447
+ x
2448
+ 85
2449
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
2450
+ p
2451
+ 1
2452
+ x
2453
+ 6
2454
+ option
2455
+ M
2456
+ 1
2457
+ p
2458
+ 2
2459
+ x
2460
+ 9
2461
+ for_block
2462
+ t
2463
+ n
2464
+ x
2465
+ 12
2466
+ enforce_ssl?
2467
+ i
2468
+ 12
2469
+ 57
2470
+ 19
2471
+ 0
2472
+ 15
2473
+ 39
2474
+ 0
2475
+ 20
2476
+ 0
2477
+ 49
2478
+ 1
2479
+ 1
2480
+ 11
2481
+ I
2482
+ 4
2483
+ I
2484
+ 1
2485
+ I
2486
+ 1
2487
+ I
2488
+ 1
2489
+ n
2490
+ p
2491
+ 2
2492
+ x
2493
+ 8
2494
+ @options
2495
+ x
2496
+ 2
2497
+ []
2498
+ p
2499
+ 3
2500
+ I
2501
+ 0
2502
+ I
2503
+ 76
2504
+ I
2505
+ c
2506
+ x
2507
+ 85
2508
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
2509
+ p
2510
+ 1
2511
+ x
2512
+ 6
2513
+ option
2514
+ p
2515
+ 25
2516
+ I
2517
+ -1
2518
+ I
2519
+ 69
2520
+ I
2521
+ 0
2522
+ I
2523
+ 6a
2524
+ I
2525
+ 9
2526
+ I
2527
+ 6b
2528
+ I
2529
+ 12
2530
+ I
2531
+ 6c
2532
+ I
2533
+ 1b
2534
+ I
2535
+ 6d
2536
+ I
2537
+ 26
2538
+ I
2539
+ 6e
2540
+ I
2541
+ 2f
2542
+ I
2543
+ 6f
2544
+ I
2545
+ 3a
2546
+ I
2547
+ 71
2548
+ I
2549
+ 3d
2550
+ I
2551
+ 74
2552
+ I
2553
+ 40
2554
+ I
2555
+ 76
2556
+ I
2557
+ 49
2558
+ I
2559
+ 77
2560
+ I
2561
+ 54
2562
+ I
2563
+ 79
2564
+ I
2565
+ 56
2566
+ x
2567
+ 85
2568
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
2569
+ p
2570
+ 3
2571
+ x
2572
+ 3
2573
+ req
2574
+ x
2575
+ 9
2576
+ path_keys
2577
+ x
2578
+ 10
2579
+ hosts_keys
2580
+ x
2581
+ 14
2582
+ replace_scheme
2583
+ M
2584
+ 1
2585
+ n
2586
+ n
2587
+ x
2588
+ 14
2589
+ replace_scheme
2590
+ i
2591
+ 287
2592
+ 39
2593
+ 0
2594
+ 7
2595
+ 1
2596
+ 49
2597
+ 2
2598
+ 1
2599
+ 9
2600
+ 46
2601
+ 45
2602
+ 3
2603
+ 4
2604
+ 39
2605
+ 0
2606
+ 7
2607
+ 1
2608
+ 49
2609
+ 2
2610
+ 1
2611
+ 49
2612
+ 5
2613
+ 1
2614
+ 19
2615
+ 2
2616
+ 15
2617
+ 20
2618
+ 2
2619
+ 80
2620
+ 49
2621
+ 2
2622
+ 1
2623
+ 13
2624
+ 10
2625
+ 42
2626
+ 15
2627
+ 20
2628
+ 2
2629
+ 4
2630
+ 5
2631
+ 49
2632
+ 2
2633
+ 1
2634
+ 19
2635
+ 2
2636
+ 8
2637
+ 49
2638
+ 1
2639
+ 19
2640
+ 2
2641
+ 15
2642
+ 45
2643
+ 6
2644
+ 7
2645
+ 43
2646
+ 8
2647
+ 13
2648
+ 71
2649
+ 9
2650
+ 47
2651
+ 9
2652
+ 178
2653
+ 47
2654
+ 49
2655
+ 10
2656
+ 0
2657
+ 13
2658
+ 20
2659
+ 0
2660
+ 49
2661
+ 11
2662
+ 0
2663
+ 44
2664
+ 43
2665
+ 12
2666
+ 4
2667
+ 4
2668
+ 49
2669
+ 13
2670
+ 1
2671
+ 13
2672
+ 7
2673
+ 14
2674
+ 64
2675
+ 20
2676
+ 1
2677
+ 49
2678
+ 15
2679
+ 2
2680
+ 15
2681
+ 13
2682
+ 7
2683
+ 16
2684
+ 64
2685
+ 20
2686
+ 1
2687
+ 49
2688
+ 15
2689
+ 2
2690
+ 15
2691
+ 13
2692
+ 7
2693
+ 17
2694
+ 64
2695
+ 5
2696
+ 20
2697
+ 1
2698
+ 47
2699
+ 49
2700
+ 18
2701
+ 1
2702
+ 49
2703
+ 19
2704
+ 0
2705
+ 49
2706
+ 15
2707
+ 2
2708
+ 15
2709
+ 13
2710
+ 7
2711
+ 20
2712
+ 64
2713
+ 5
2714
+ 20
2715
+ 1
2716
+ 47
2717
+ 49
2718
+ 18
2719
+ 1
2720
+ 49
2721
+ 19
2722
+ 0
2723
+ 49
2724
+ 15
2725
+ 2
2726
+ 15
2727
+ 49
2728
+ 21
2729
+ 1
2730
+ 20
2731
+ 2
2732
+ 9
2733
+ 161
2734
+ 44
2735
+ 43
2736
+ 12
2737
+ 79
2738
+ 49
2739
+ 13
2740
+ 1
2741
+ 13
2742
+ 7
2743
+ 22
2744
+ 64
2745
+ 20
2746
+ 2
2747
+ 49
2748
+ 15
2749
+ 2
2750
+ 15
2751
+ 8
2752
+ 168
2753
+ 44
2754
+ 43
2755
+ 12
2756
+ 78
2757
+ 49
2758
+ 13
2759
+ 1
2760
+ 49
2761
+ 21
2762
+ 1
2763
+ 47
2764
+ 49
2765
+ 23
2766
+ 1
2767
+ 15
2768
+ 8
2769
+ 286
2770
+ 20
2771
+ 0
2772
+ 49
2773
+ 11
2774
+ 0
2775
+ 44
2776
+ 43
2777
+ 12
2778
+ 4
2779
+ 4
2780
+ 49
2781
+ 13
2782
+ 1
2783
+ 13
2784
+ 7
2785
+ 14
2786
+ 64
2787
+ 20
2788
+ 1
2789
+ 49
2790
+ 15
2791
+ 2
2792
+ 15
2793
+ 13
2794
+ 7
2795
+ 16
2796
+ 64
2797
+ 20
2798
+ 1
2799
+ 49
2800
+ 15
2801
+ 2
2802
+ 15
2803
+ 13
2804
+ 7
2805
+ 17
2806
+ 64
2807
+ 5
2808
+ 20
2809
+ 1
2810
+ 47
2811
+ 49
2812
+ 18
2813
+ 1
2814
+ 49
2815
+ 19
2816
+ 0
2817
+ 49
2818
+ 15
2819
+ 2
2820
+ 15
2821
+ 13
2822
+ 7
2823
+ 20
2824
+ 64
2825
+ 5
2826
+ 20
2827
+ 1
2828
+ 47
2829
+ 49
2830
+ 18
2831
+ 1
2832
+ 49
2833
+ 19
2834
+ 0
2835
+ 49
2836
+ 15
2837
+ 2
2838
+ 15
2839
+ 49
2840
+ 21
2841
+ 1
2842
+ 20
2843
+ 2
2844
+ 9
2845
+ 273
2846
+ 44
2847
+ 43
2848
+ 12
2849
+ 79
2850
+ 49
2851
+ 13
2852
+ 1
2853
+ 13
2854
+ 7
2855
+ 22
2856
+ 64
2857
+ 20
2858
+ 2
2859
+ 49
2860
+ 15
2861
+ 2
2862
+ 15
2863
+ 8
2864
+ 280
2865
+ 44
2866
+ 43
2867
+ 12
2868
+ 78
2869
+ 49
2870
+ 13
2871
+ 1
2872
+ 49
2873
+ 21
2874
+ 1
2875
+ 49
2876
+ 9
2877
+ 1
2878
+ 11
2879
+ I
2880
+ b
2881
+ I
2882
+ 3
2883
+ I
2884
+ 2
2885
+ I
2886
+ 2
2887
+ n
2888
+ p
2889
+ 24
2890
+ x
2891
+ 8
2892
+ @options
2893
+ x
2894
+ 11
2895
+ redirect_to
2896
+ x
2897
+ 2
2898
+ []
2899
+ x
2900
+ 3
2901
+ URI
2902
+ n
2903
+ x
2904
+ 5
2905
+ split
2906
+ x
2907
+ 4
2908
+ Rack
2909
+ n
2910
+ x
2911
+ 7
2912
+ Request
2913
+ x
2914
+ 3
2915
+ new
2916
+ x
2917
+ 8
2918
+ allocate
2919
+ x
2920
+ 3
2921
+ env
2922
+ x
2923
+ 4
2924
+ Hash
2925
+ x
2926
+ 16
2927
+ new_from_literal
2928
+ s
2929
+ 15
2930
+ rack.url_scheme
2931
+ x
2932
+ 3
2933
+ []=
2934
+ s
2935
+ 22
2936
+ HTTP_X_FORWARDED_PROTO
2937
+ s
2938
+ 21
2939
+ HTTP_X_FORWARDED_PORT
2940
+ x
2941
+ 8
2942
+ port_for
2943
+ x
2944
+ 4
2945
+ to_s
2946
+ s
2947
+ 11
2948
+ SERVER_PORT
2949
+ x
2950
+ 5
2951
+ merge
2952
+ s
2953
+ 9
2954
+ HTTP_HOST
2955
+ x
2956
+ 10
2957
+ initialize
2958
+ p
2959
+ 45
2960
+ I
2961
+ -1
2962
+ I
2963
+ 7d
2964
+ I
2965
+ 0
2966
+ I
2967
+ 7e
2968
+ I
2969
+ 9
2970
+ I
2971
+ 7f
2972
+ I
2973
+ 19
2974
+ I
2975
+ 80
2976
+ I
2977
+ 2e
2978
+ I
2979
+ 82
2980
+ I
2981
+ 32
2982
+ I
2983
+ 84
2984
+ I
2985
+ 47
2986
+ I
2987
+ 88
2988
+ I
2989
+ 50
2990
+ I
2991
+ 85
2992
+ I
2993
+ 5a
2994
+ I
2995
+ 86
2996
+ I
2997
+ 64
2998
+ I
2999
+ 87
3000
+ I
3001
+ 76
3002
+ I
3003
+ 88
3004
+ I
3005
+ 87
3006
+ I
3007
+ 84
3008
+ I
3009
+ 8a
3010
+ I
3011
+ 89
3012
+ I
3013
+ a8
3014
+ I
3015
+ 84
3016
+ I
3017
+ b7
3018
+ I
3019
+ 88
3020
+ I
3021
+ c0
3022
+ I
3023
+ 85
3024
+ I
3025
+ ca
3026
+ I
3027
+ 86
3028
+ I
3029
+ d4
3030
+ I
3031
+ 87
3032
+ I
3033
+ e6
3034
+ I
3035
+ 88
3036
+ I
3037
+ f7
3038
+ I
3039
+ 84
3040
+ I
3041
+ fa
3042
+ I
3043
+ 89
3044
+ I
3045
+ 118
3046
+ I
3047
+ 84
3048
+ I
3049
+ 11f
3050
+ x
3051
+ 85
3052
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
3053
+ p
3054
+ 3
3055
+ x
3056
+ 3
3057
+ req
3058
+ x
3059
+ 6
3060
+ scheme
3061
+ x
3062
+ 3
3063
+ uri
3064
+ x
3065
+ 8
3066
+ port_for
3067
+ M
3068
+ 1
3069
+ n
3070
+ n
3071
+ x
3072
+ 8
3073
+ port_for
3074
+ i
3075
+ 16
3076
+ 20
3077
+ 0
3078
+ 7
3079
+ 0
3080
+ 64
3081
+ 83
3082
+ 1
3083
+ 9
3084
+ 13
3085
+ 7
3086
+ 2
3087
+ 8
3088
+ 15
3089
+ 4
3090
+ 80
3091
+ 11
3092
+ I
3093
+ 3
3094
+ I
3095
+ 1
3096
+ I
3097
+ 1
3098
+ I
3099
+ 1
3100
+ n
3101
+ p
3102
+ 3
3103
+ s
3104
+ 5
3105
+ https
3106
+ x
3107
+ 2
3108
+ ==
3109
+ I
3110
+ 1bb
3111
+ p
3112
+ 5
3113
+ I
3114
+ -1
3115
+ I
3116
+ 8c
3117
+ I
3118
+ 0
3119
+ I
3120
+ 8d
3121
+ I
3122
+ 10
3123
+ x
3124
+ 85
3125
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
3126
+ p
3127
+ 1
3128
+ x
3129
+ 6
3130
+ scheme
3131
+ x
3132
+ 23
3133
+ flag_cookies_as_secure!
3134
+ M
3135
+ 1
3136
+ n
3137
+ n
3138
+ x
3139
+ 23
3140
+ flag_cookies_as_secure!
3141
+ i
3142
+ 51
3143
+ 20
3144
+ 0
3145
+ 7
3146
+ 0
3147
+ 64
3148
+ 49
3149
+ 1
3150
+ 1
3151
+ 9
3152
+ 49
3153
+ 20
3154
+ 0
3155
+ 7
3156
+ 0
3157
+ 64
3158
+ 20
3159
+ 0
3160
+ 7
3161
+ 0
3162
+ 64
3163
+ 49
3164
+ 1
3165
+ 1
3166
+ 7
3167
+ 2
3168
+ 64
3169
+ 49
3170
+ 3
3171
+ 1
3172
+ 56
3173
+ 4
3174
+ 50
3175
+ 5
3176
+ 0
3177
+ 7
3178
+ 2
3179
+ 64
3180
+ 49
3181
+ 6
3182
+ 1
3183
+ 13
3184
+ 18
3185
+ 3
3186
+ 49
3187
+ 7
3188
+ 2
3189
+ 15
3190
+ 8
3191
+ 50
3192
+ 1
3193
+ 11
3194
+ I
3195
+ 5
3196
+ I
3197
+ 1
3198
+ I
3199
+ 1
3200
+ I
3201
+ 1
3202
+ n
3203
+ p
3204
+ 8
3205
+ s
3206
+ 10
3207
+ Set-Cookie
3208
+ x
3209
+ 2
3210
+ []
3211
+ s
3212
+ 1
3213
+
3214
+
3215
+ x
3216
+ 5
3217
+ split
3218
+ M
3219
+ 1
3220
+ p
3221
+ 2
3222
+ x
3223
+ 9
3224
+ for_block
3225
+ t
3226
+ n
3227
+ x
3228
+ 23
3229
+ flag_cookies_as_secure!
3230
+ i
3231
+ 49
3232
+ 57
3233
+ 19
3234
+ 0
3235
+ 15
3236
+ 20
3237
+ 0
3238
+ 7
3239
+ 0
3240
+ 13
3241
+ 70
3242
+ 9
3243
+ 24
3244
+ 15
3245
+ 44
3246
+ 43
3247
+ 1
3248
+ 7
3249
+ 2
3250
+ 78
3251
+ 49
3252
+ 3
3253
+ 2
3254
+ 6
3255
+ 0
3256
+ 49
3257
+ 4
3258
+ 1
3259
+ 10
3260
+ 32
3261
+ 2
3262
+ 8
3263
+ 33
3264
+ 3
3265
+ 9
3266
+ 46
3267
+ 20
3268
+ 0
3269
+ 47
3270
+ 101
3271
+ 5
3272
+ 7
3273
+ 6
3274
+ 63
3275
+ 2
3276
+ 8
3277
+ 48
3278
+ 20
3279
+ 0
3280
+ 11
3281
+ I
3282
+ 6
3283
+ I
3284
+ 1
3285
+ I
3286
+ 1
3287
+ I
3288
+ 1
3289
+ n
3290
+ p
3291
+ 7
3292
+ n
3293
+ x
3294
+ 6
3295
+ Regexp
3296
+ s
3297
+ 8
3298
+ secure;
3299
+ x
3300
+ 3
3301
+ new
3302
+ x
3303
+ 2
3304
+ =~
3305
+ x
3306
+ 4
3307
+ to_s
3308
+ s
3309
+ 8
3310
+ ; secure
3311
+ p
3312
+ 5
3313
+ I
3314
+ 0
3315
+ I
3316
+ 93
3317
+ I
3318
+ 4
3319
+ I
3320
+ 94
3321
+ I
3322
+ 31
3323
+ x
3324
+ 85
3325
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
3326
+ p
3327
+ 1
3328
+ x
3329
+ 6
3330
+ cookie
3331
+ x
3332
+ 3
3333
+ map
3334
+ x
3335
+ 4
3336
+ join
3337
+ x
3338
+ 3
3339
+ []=
3340
+ p
3341
+ 13
3342
+ I
3343
+ -1
3344
+ I
3345
+ 91
3346
+ I
3347
+ 0
3348
+ I
3349
+ 92
3350
+ I
3351
+ a
3352
+ I
3353
+ 93
3354
+ I
3355
+ 22
3356
+ I
3357
+ 95
3358
+ I
3359
+ 25
3360
+ I
3361
+ 93
3362
+ I
3363
+ 31
3364
+ I
3365
+ 92
3366
+ I
3367
+ 33
3368
+ x
3369
+ 85
3370
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
3371
+ p
3372
+ 1
3373
+ x
3374
+ 7
3375
+ headers
3376
+ x
3377
+ 17
3378
+ set_hsts_headers!
3379
+ M
3380
+ 1
3381
+ n
3382
+ n
3383
+ x
3384
+ 17
3385
+ set_hsts_headers!
3386
+ i
3387
+ 102
3388
+ 44
3389
+ 43
3390
+ 0
3391
+ 80
3392
+ 49
3393
+ 1
3394
+ 1
3395
+ 13
3396
+ 7
3397
+ 2
3398
+ 7
3399
+ 3
3400
+ 49
3401
+ 4
3402
+ 2
3403
+ 15
3404
+ 13
3405
+ 7
3406
+ 5
3407
+ 2
3408
+ 49
3409
+ 4
3410
+ 2
3411
+ 15
3412
+ 19
3413
+ 1
3414
+ 15
3415
+ 20
3416
+ 1
3417
+ 39
3418
+ 6
3419
+ 7
3420
+ 7
3421
+ 49
3422
+ 8
3423
+ 1
3424
+ 49
3425
+ 9
3426
+ 1
3427
+ 15
3428
+ 7
3429
+ 10
3430
+ 20
3431
+ 1
3432
+ 7
3433
+ 2
3434
+ 49
3435
+ 8
3436
+ 1
3437
+ 47
3438
+ 101
3439
+ 11
3440
+ 63
3441
+ 2
3442
+ 19
3443
+ 2
3444
+ 15
3445
+ 20
3446
+ 1
3447
+ 7
3448
+ 5
3449
+ 49
3450
+ 8
3451
+ 1
3452
+ 9
3453
+ 77
3454
+ 20
3455
+ 2
3456
+ 7
3457
+ 12
3458
+ 64
3459
+ 81
3460
+ 13
3461
+ 19
3462
+ 2
3463
+ 8
3464
+ 78
3465
+ 1
3466
+ 15
3467
+ 20
3468
+ 0
3469
+ 44
3470
+ 43
3471
+ 0
3472
+ 79
3473
+ 49
3474
+ 1
3475
+ 1
3476
+ 13
3477
+ 7
3478
+ 14
3479
+ 64
3480
+ 20
3481
+ 2
3482
+ 49
3483
+ 4
3484
+ 2
3485
+ 15
3486
+ 49
3487
+ 9
3488
+ 1
3489
+ 11
3490
+ I
3491
+ 8
3492
+ I
3493
+ 3
3494
+ I
3495
+ 1
3496
+ I
3497
+ 1
3498
+ n
3499
+ p
3500
+ 15
3501
+ x
3502
+ 4
3503
+ Hash
3504
+ x
3505
+ 16
3506
+ new_from_literal
3507
+ x
3508
+ 7
3509
+ expires
3510
+ I
3511
+ 1e13380
3512
+ x
3513
+ 3
3514
+ []=
3515
+ x
3516
+ 10
3517
+ subdomains
3518
+ x
3519
+ 8
3520
+ @options
3521
+ x
3522
+ 4
3523
+ hsts
3524
+ x
3525
+ 2
3526
+ []
3527
+ x
3528
+ 6
3529
+ merge!
3530
+ s
3531
+ 8
3532
+ max-age=
3533
+ x
3534
+ 4
3535
+ to_s
3536
+ s
3537
+ 19
3538
+ ; includeSubDomains
3539
+ x
3540
+ 1
3541
+ +
3542
+ s
3543
+ 25
3544
+ Strict-Transport-Security
3545
+ p
3546
+ 13
3547
+ I
3548
+ -1
3549
+ I
3550
+ 9a
3551
+ I
3552
+ 0
3553
+ I
3554
+ 9b
3555
+ I
3556
+ 1b
3557
+ I
3558
+ 9c
3559
+ I
3560
+ 28
3561
+ I
3562
+ 9d
3563
+ I
3564
+ 39
3565
+ I
3566
+ 9e
3567
+ I
3568
+ 4f
3569
+ I
3570
+ 9f
3571
+ I
3572
+ 66
3573
+ x
3574
+ 85
3575
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
3576
+ p
3577
+ 3
3578
+ x
3579
+ 7
3580
+ headers
3581
+ x
3582
+ 4
3583
+ opts
3584
+ x
3585
+ 5
3586
+ value
3587
+ p
3588
+ 27
3589
+ I
3590
+ 2
3591
+ I
3592
+ 4
3593
+ I
3594
+ 10
3595
+ I
3596
+ 14
3597
+ I
3598
+ 1e
3599
+ I
3600
+ 2b
3601
+ I
3602
+ 22
3603
+ I
3604
+ 2d
3605
+ I
3606
+ 30
3607
+ I
3608
+ 31
3609
+ I
3610
+ 3e
3611
+ I
3612
+ 36
3613
+ I
3614
+ 4c
3615
+ I
3616
+ 40
3617
+ I
3618
+ 5a
3619
+ I
3620
+ 5a
3621
+ I
3622
+ 68
3623
+ I
3624
+ 69
3625
+ I
3626
+ 76
3627
+ I
3628
+ 7d
3629
+ I
3630
+ 84
3631
+ I
3632
+ 8c
3633
+ I
3634
+ 92
3635
+ I
3636
+ 91
3637
+ I
3638
+ a0
3639
+ I
3640
+ 9a
3641
+ I
3642
+ ae
3643
+ x
3644
+ 85
3645
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
3646
+ p
3647
+ 0
3648
+ x
3649
+ 13
3650
+ attach_method
3651
+ p
3652
+ 3
3653
+ I
3654
+ 2
3655
+ I
3656
+ 2
3657
+ I
3658
+ 1d
3659
+ x
3660
+ 85
3661
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
3662
+ p
3663
+ 0
3664
+ x
3665
+ 13
3666
+ attach_method
3667
+ p
3668
+ 3
3669
+ I
3670
+ 0
3671
+ I
3672
+ 1
3673
+ I
3674
+ 1c
3675
+ x
3676
+ 85
3677
+ /Users/remy/Development/Ruby/Gems/tobmatth/rack-ssl-enforcer/lib/rack/ssl-enforcer.rb
3678
+ p
3679
+ 0