pact-mock_service 2.9.0 → 2.9.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 +9 -0
- data/lib/pact/mock_service/request_handlers/options.rb +19 -7
- data/lib/pact/mock_service/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3050518a4a689dc476ec7975321bf78d28acacc3469993425156d594ddc9b94d
|
4
|
+
data.tar.gz: 853cef5f4fcf1795df513a0949e3c3e8f7e708d0ade208410b7d843bb2cb7c0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bc7256532cf16c15d344bcf9cab13e5ab26c4f98882c095209250fccdebfb749b6857f792767dfbf8b12264b91c3812efc07749d8e797aabb9ed5517e371ad1
|
7
|
+
data.tar.gz: b8b3dc4e6186d9c3e911fd6c599c7672c04e69283c8eb770de6d7afe357925235c16f78179edbf02f11a29139ba6a5fb44993a4c93894257a72799975548c7c2
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
<a name="v2.9.1"></a>
|
2
|
+
### v2.9.1 (2018-07-04)
|
3
|
+
|
4
|
+
|
5
|
+
#### Bug Fixes
|
6
|
+
|
7
|
+
* return Access-Control-Allow-Headers=* for OPTIONS requests with no Access-Control-Request-Headers ([855fd83](/../../commit/855fd83))
|
8
|
+
|
9
|
+
|
1
10
|
<a name="v2.9.0"></a>
|
2
11
|
### v2.9.0 (2018-06-15)
|
3
12
|
|
@@ -7,6 +7,17 @@ module Pact
|
|
7
7
|
|
8
8
|
attr_reader :name, :logger, :cors_enabled
|
9
9
|
|
10
|
+
HTTP_ACCESS_CONTROL_REQUEST_METHOD = "HTTP_ACCESS_CONTROL_REQUEST_METHOD".freeze
|
11
|
+
HTTP_ACCESS_CONTROL_REQUEST_HEADERS = "HTTP_ACCESS_CONTROL_REQUEST_HEADERS".freeze
|
12
|
+
ACCESS_CONTROL_ALLOW_ORIGIN = "Access-Control-Allow-Origin".freeze
|
13
|
+
ACCESS_CONTROL_ALLOW_METHODS = "Access-Control-Allow-Methods".freeze
|
14
|
+
ACCESS_CONTROL_ALLOW_HEADERS = "Access-Control-Allow-Headers".freeze
|
15
|
+
HTTP_ORIGIN = "HTTP_ORIGIN".freeze
|
16
|
+
ALL_METHODS = "DELETE, POST, GET, HEAD, PUT, TRACE, CONNECT, PATCH".freeze
|
17
|
+
REQUEST_METHOD = "REQUEST_METHOD".freeze
|
18
|
+
OPTIONS = "OPTIONS".freeze
|
19
|
+
X_PACT_MOCK_SERVICE_REGEXP = /x-pact-mock-service/i
|
20
|
+
|
10
21
|
def initialize name, logger, cors_enabled
|
11
22
|
@name = name
|
12
23
|
@logger = logger
|
@@ -14,25 +25,26 @@ module Pact
|
|
14
25
|
end
|
15
26
|
|
16
27
|
def match? env
|
17
|
-
|
28
|
+
is_options_request?(env) && (cors_enabled || is_administration_request?(env))
|
18
29
|
end
|
19
30
|
|
20
31
|
def respond env
|
21
32
|
cors_headers = {
|
22
|
-
|
23
|
-
|
24
|
-
|
33
|
+
ACCESS_CONTROL_ALLOW_ORIGIN => env.fetch(HTTP_ORIGIN,'*'),
|
34
|
+
ACCESS_CONTROL_ALLOW_HEADERS => env.fetch(HTTP_ACCESS_CONTROL_REQUEST_HEADERS, '*'),
|
35
|
+
ACCESS_CONTROL_ALLOW_METHODS => ALL_METHODS
|
25
36
|
}
|
26
|
-
|
37
|
+
|
38
|
+
logger.info "Received OPTIONS request for mock service administration endpoint #{env[HTTP_ACCESS_CONTROL_REQUEST_METHOD]} #{env['PATH_INFO']}. Returning CORS headers: #{cors_headers}."
|
27
39
|
[200, cors_headers, []]
|
28
40
|
end
|
29
41
|
|
30
42
|
def is_options_request? env
|
31
|
-
env[
|
43
|
+
env[REQUEST_METHOD] == OPTIONS
|
32
44
|
end
|
33
45
|
|
34
46
|
def is_administration_request? env
|
35
|
-
(env[
|
47
|
+
(env[HTTP_ACCESS_CONTROL_REQUEST_HEADERS] || '').match(X_PACT_MOCK_SERVICE_REGEXP)
|
36
48
|
end
|
37
49
|
end
|
38
50
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pact-mock_service
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.9.
|
4
|
+
version: 2.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Fraser
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2018-
|
15
|
+
date: 2018-07-04 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rack
|