nec_mock_server 0.1.3 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|