nec_mock_server 0.1.3 → 0.2.2
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 +4 -4
- data/lib/nec_mock_server.rb +1 -0
- data/lib/nec_mock_server/mock_server.rb +27 -8
- data/lib/nec_mock_server/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cd135ccba491319b1a06cbe454097ff713e20d15
|
|
4
|
+
data.tar.gz: da839dd085b505595df196bb61fcefb866e9fb5b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e462ebbf35f349aa242b0c83d03cdd396b8aa8a2276fce0272314fe76f77f389de6ec0a5b1df286d7ec71f6ec33deabd020c35b0f762249ba470b073e8235000
|
|
7
|
+
data.tar.gz: 3351be7e6f0401530b56531ae65075176021054396defe015362e74b91d624d3cea2f163eff1c1381075d3a3d206659f6b165f7d3ab439e8206ed79a659c9516
|
data/lib/nec_mock_server.rb
CHANGED
|
@@ -40,7 +40,8 @@ module NEC
|
|
|
40
40
|
class Application
|
|
41
41
|
|
|
42
42
|
MATCHERS = {
|
|
43
|
-
|
|
43
|
+
uaf: /:(?<port>\d+)(\/(?<product>[\-\w]+)){0,1}(\/(?<tid>\w+)\-(?<awid>\w+)){0,1}(?<resource>(\/\w+)+)(\?(?<parameters>.*)){0,1}/,
|
|
44
|
+
uu8: /:(?<port>\d+)\/{0,1}(?<territory>[0-9A-z\-]*)\/(?<product>[\w\-]+)\/(?<resource>\w+\/\w+)\/exec\?(?<parameters>.*)/
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
REGISTER_AWID_RESOURCE = '/sys/initAppWorkspace'
|
|
@@ -59,9 +60,9 @@ module NEC
|
|
|
59
60
|
def initialize(router, opts = {})
|
|
60
61
|
@router = router
|
|
61
62
|
@only_registered_awid = opts[:only_registered_awid]
|
|
62
|
-
@url_parts_matcher = opts.fetch(:matcher) {MATCHERS[:
|
|
63
|
-
@awids = opts.fetch(:awids)
|
|
64
|
-
@asids = opts.fetch(:asids)
|
|
63
|
+
@url_parts_matcher = opts.fetch(:matcher) {MATCHERS[:uaf]}
|
|
64
|
+
@awids = opts.fetch(:awids) {{}}
|
|
65
|
+
@asids = opts.fetch(:asids) {{}}
|
|
65
66
|
end
|
|
66
67
|
|
|
67
68
|
###
|
|
@@ -70,14 +71,31 @@ module NEC
|
|
|
70
71
|
# @param [Hash] env
|
|
71
72
|
def call(env)
|
|
72
73
|
request = Rack::Request.new(env)
|
|
73
|
-
|
|
74
|
+
identity = get_identity(env['HTTP_AUTHORIZATION'])
|
|
75
|
+
serve_request(request, identity)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
###
|
|
79
|
+
# The method helps to get identity information from Bearer token
|
|
80
|
+
#
|
|
81
|
+
# @param [String] authorization
|
|
82
|
+
def get_identity(authorization)
|
|
83
|
+
if authorization
|
|
84
|
+
begin
|
|
85
|
+
token = authorization.split('Bearer ')[1]
|
|
86
|
+
parts = token.split('.')
|
|
87
|
+
JSON.parse(Base64.decode64(parts[1]), symbolize_names: true)
|
|
88
|
+
rescue => e
|
|
89
|
+
warn e.message
|
|
90
|
+
end
|
|
91
|
+
end
|
|
74
92
|
end
|
|
75
93
|
|
|
76
94
|
###
|
|
77
95
|
# The method handle received request.
|
|
78
96
|
#
|
|
79
97
|
# @param [Rack::Request] request
|
|
80
|
-
def serve_request(request)
|
|
98
|
+
def serve_request(request, identity = nil)
|
|
81
99
|
parts = get_url_parts(request.url)
|
|
82
100
|
|
|
83
101
|
begin
|
|
@@ -95,7 +113,7 @@ module NEC
|
|
|
95
113
|
return @router.no_registered_awid(parts[:tid], parts[:awid]) unless is_registered_resource?(parts[:tid], parts[:awid])
|
|
96
114
|
end
|
|
97
115
|
|
|
98
|
-
@router.route(parts, data)
|
|
116
|
+
@router.route(parts, data, identity)
|
|
99
117
|
end
|
|
100
118
|
|
|
101
119
|
private
|
|
@@ -164,7 +182,8 @@ module NEC
|
|
|
164
182
|
#
|
|
165
183
|
# @param [Hash] parts All parts find by specified matcher of URL request
|
|
166
184
|
# @param [String] request_data Received data by request
|
|
167
|
-
|
|
185
|
+
# @param [Hash] identity
|
|
186
|
+
def route(parts, request_data, identity = nil)
|
|
168
187
|
case parts[:resource]
|
|
169
188
|
when "/", ""
|
|
170
189
|
home
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: nec_mock_server
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Marek Filteš
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-
|
|
11
|
+
date: 2018-09-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|