aaf-secure_headers 1.0.0 → 1.1.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8be7288a84ac0614798af9cf4eb41ceaa8a5533b
4
- data.tar.gz: 9d9456a3fa3206bf914b6e796e8043589303087a
3
+ metadata.gz: 0ecbca92ffa54de01c7a60cc1a3dee3ae58d364d
4
+ data.tar.gz: cd06533d81d0a835311c0f80196be0075537e831
5
5
  SHA512:
6
- metadata.gz: 02217e8517f4d934d0d6c3e4c35cff0ae92f9025a69b19c3aff21308b1548d5cec2a4dad6a6aabacdbe5ec8ec25473aac33fd535a83a6126e97ea3ad5107291e
7
- data.tar.gz: d1b0b74ec84056ad7c77787c2c17a2cb08cd65320700fbac72632ed85c82fcd86bde4155b89ae55668e0735ea899122e0f1c2cc766239a3231c1f89c738628ba
6
+ metadata.gz: 438ca38f427f1ddb1a36309bbd1197b95c130c2b97f6201b1ccbfdf961f8ce1cb53672870f8fe8f68d75556dac41ba6a63bc09729f2af81981744352d549e584
7
+ data.tar.gz: 192096b6d0ec62c86ceab51e0fc8d852c3c21cb663bde6548f32e2353b859b423225f11f42e1f25a6a979eb419a81b5f14dfeb7d4ec53fb81ad28c6036cbb487
data/.rspec CHANGED
@@ -1,2 +1,3 @@
1
1
  --format documentation
2
2
  --color
3
+ --require spec_helper
@@ -27,4 +27,5 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency 'bundler', '~> 1.12'
28
28
  spec.add_development_dependency 'rake', '~> 10.0'
29
29
  spec.add_development_dependency 'rspec', '~> 3.0'
30
+ spec.add_development_dependency 'actionpack'
30
31
  end
@@ -1,4 +1,5 @@
1
1
  require 'aaf/secure_headers/version'
2
+ require 'aaf/secure_headers/disable_secure_headers_for_error_pages'
2
3
  require 'secure_headers'
3
4
  require 'active_support/core_ext/integer/time'
4
5
 
@@ -37,5 +38,36 @@ module AAF
37
38
  report_uri: []
38
39
  }
39
40
  end
41
+
42
+ class <<self
43
+ def development_mode!
44
+ ensure_rails
45
+ insert_dev_middleware
46
+ override_dev_configuration
47
+ end
48
+
49
+ private
50
+
51
+ def ensure_rails
52
+ return if const_defined?('Rails')
53
+
54
+ raise 'The Rails class is not defined. The `development_mode!` helper '\
55
+ 'can only be used in a Rails application.'
56
+ end
57
+
58
+ def insert_dev_middleware
59
+ Rails.application.config.middleware.insert_after(
60
+ ::SecureHeaders::Middleware,
61
+ AAF::SecureHeaders::DisableSecureHeadersForErrorPages
62
+ )
63
+ end
64
+
65
+ def override_dev_configuration
66
+ ::SecureHeaders::Configuration.override(:default) do |config|
67
+ config.hsts = nil
68
+ config.csp[:upgrade_insecure_requests] = false
69
+ end
70
+ end
71
+ end
40
72
  end
41
73
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AAF
4
+ module SecureHeaders
5
+ class DisableSecureHeadersForErrorPages
6
+ def initialize(app)
7
+ @app = app
8
+ end
9
+
10
+ def call(env)
11
+ @app.call(env).tap do |(status, _, _)|
12
+ next if status < 400
13
+ request = ActionDispatch::Request.new(env)
14
+ ::SecureHeaders.opt_out_of_all_protection(request)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,5 +1,5 @@
1
1
  module AAF
2
2
  module SecureHeaders
3
- VERSION = '1.0.0'.freeze
3
+ VERSION = '1.1.0'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aaf-secure_headers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Caught
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-03 00:00:00.000000000 Z
11
+ date: 2016-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: secure_headers
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '3.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: actionpack
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description: Base configuration for AAF Secure Headers
84
98
  email:
85
99
  - ryan.caught@aaf.edu.au
@@ -98,6 +112,7 @@ files:
98
112
  - bin/console
99
113
  - bin/setup
100
114
  - lib/aaf/secure_headers.rb
115
+ - lib/aaf/secure_headers/disable_secure_headers_for_error_pages.rb
101
116
  - lib/aaf/secure_headers/version.rb
102
117
  homepage: https://github.com/ausaccessfed/aaf-secure_headers
103
118
  licenses: []
@@ -118,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
133
  version: '0'
119
134
  requirements: []
120
135
  rubyforge_project:
121
- rubygems_version: 2.6.6
136
+ rubygems_version: 2.6.7
122
137
  signing_key:
123
138
  specification_version: 4
124
139
  summary: Base configuration for AAF Secure Headers