rack-cors 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/rack/cors.rb +3 -1
- data/lib/rack/cors/version.rb +1 -1
- data/test/unit/cors_test.rb +14 -2
- data/test/unit/test.ru +1 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f879bc8ea95eac0ca9360c3a553084961d02944255f6ad380b64e855653b8b6
|
4
|
+
data.tar.gz: bd9478603340a1785324ab4f1db9517a8943fdcc1be13193e4d6b83b184fa032
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12d13e99acef13b159595487b3c0198bc1a355371bdb149241d11e1d0715148e0749085d0f0c362d4defdec2e325b416b1e93aeb28be2d421516d4db8185fdac
|
7
|
+
data.tar.gz: a1f373194a95094f337c545e7751eac2c4d8500dfd607088a88e55774b755fa0ec659710319a2f7997e579231b7de806e63f2ce4a1639cdb732eed5bcbb743b9
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
# Change Log
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
|
+
## 1.1.1 - 2019-12-29
|
5
|
+
### Changed
|
6
|
+
- Allow /<resource>/* to match /<resource>/ and /<resource> paths
|
7
|
+
|
4
8
|
## 1.1.0 - 2019-11-19
|
5
9
|
### Changed
|
6
10
|
- Use Rack::Utils.escape_path instead of Rack::Utils.escape
|
data/lib/rack/cors.rb
CHANGED
@@ -447,8 +447,10 @@ module Rack
|
|
447
447
|
if path.respond_to? :to_str
|
448
448
|
special_chars = %w{. + ( )}
|
449
449
|
pattern =
|
450
|
-
path.to_str.gsub(/((:\w+)
|
450
|
+
path.to_str.gsub(/((:\w+)|\/\*|[\*#{special_chars.join}])/) do |match|
|
451
451
|
case match
|
452
|
+
when "/*"
|
453
|
+
"\\/?(.*?)"
|
452
454
|
when "*"
|
453
455
|
"(.*?)"
|
454
456
|
when *special_chars
|
data/lib/rack/cors/version.rb
CHANGED
data/test/unit/cors_test.rb
CHANGED
@@ -341,13 +341,25 @@ describe Rack::Cors do
|
|
341
341
|
last_response.must_render_cors_success
|
342
342
|
end
|
343
343
|
|
344
|
-
it
|
344
|
+
it "should allow '*' origins to allow any origin" do
|
345
345
|
preflight_request('http://locohost:3000', '/public')
|
346
346
|
last_response.must_render_cors_success
|
347
347
|
last_response.headers['Access-Control-Allow-Origin'].must_equal '*'
|
348
348
|
end
|
349
349
|
|
350
|
-
it
|
350
|
+
it "should allow '/<path>/' resource if match pattern is /<path>/*" do
|
351
|
+
preflight_request('http://localhost:3000', '/wildcard/')
|
352
|
+
last_response.must_render_cors_success
|
353
|
+
last_response.headers['Access-Control-Allow-Origin'].wont_equal nil
|
354
|
+
end
|
355
|
+
|
356
|
+
it "should allow '/<path>' resource if match pattern is /<path>/*" do
|
357
|
+
preflight_request('http://localhost:3000', '/wildcard')
|
358
|
+
last_response.must_render_cors_success
|
359
|
+
last_response.headers['Access-Control-Allow-Origin'].wont_equal nil
|
360
|
+
end
|
361
|
+
|
362
|
+
it "should allow '*' origin to allow any origin, and set '*' if no credentials required" do
|
351
363
|
preflight_request('http://locohost:3000', '/public_without_credentials')
|
352
364
|
last_response.must_render_cors_success
|
353
365
|
last_response.headers['Access-Control-Allow-Origin'].must_equal '*'
|
data/test/unit/test.ru
CHANGED
@@ -20,6 +20,7 @@ use Rack::Cors do
|
|
20
20
|
resource '/conditional', :methods => :get, :if => proc { |env| !!env['HTTP_X_OK'] }
|
21
21
|
resource '/vary_test', :methods => :get, :vary => %w{ Origin Host }
|
22
22
|
resource '/patch_test', :methods => :patch
|
23
|
+
resource '/wildcard/*', :methods => :any
|
23
24
|
# resource '/file/at/*',
|
24
25
|
# :methods => [:get, :post, :put, :delete],
|
25
26
|
# :headers => :any,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-cors
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Calvin Yu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -147,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
147
147
|
- !ruby/object:Gem::Version
|
148
148
|
version: '0'
|
149
149
|
requirements: []
|
150
|
-
rubygems_version: 3.0.
|
150
|
+
rubygems_version: 3.0.3
|
151
151
|
signing_key:
|
152
152
|
specification_version: 4
|
153
153
|
summary: Middleware for enabling Cross-Origin Resource Sharing in Rack apps
|