fluent-plugin-http-pull 0.7.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,25 @@
1
+ # 1. Generate a Private Key
2
+
3
+ ```
4
+ openssl genrsa -aes128 -out server.key 2048
5
+ Enter pass phrase : 3939
6
+ ```
7
+
8
+ # 2. Generate a CSR (Certificate Signing Request)
9
+
10
+ ```
11
+ openssl req -new -key server.key -out server.csr
12
+ ```
13
+
14
+ # 3. Remove Passphrase from Key
15
+
16
+ ```
17
+ cp server.key server.key.org
18
+ openssl rsa -in server.key.org -out server.key
19
+ ```
20
+
21
+ # 4. Generating a Self-Signed Certificate
22
+
23
+ ```
24
+ openssl x509 -req -days 36500 -in server.csr -signkey server.key -out server.crt
25
+ ```
@@ -0,0 +1,19 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDLDCCAhQCCQCv3Q6dwIpcDDANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJK
3
+ UDEOMAwGA1UECAwFVG9reW8xDjAMBgNVBAcMBVRva3lvMRQwEgYDVQQKDAtIYXRz
4
+ dW5lTWlrdTESMBAGA1UEAwwJbG9jYWxob3N0MCAXDTE4MDUyNzA0MDcyN1oYDzIx
5
+ MTgwNTAzMDQwNzI3WjBXMQswCQYDVQQGEwJKUDEOMAwGA1UECAwFVG9reW8xDjAM
6
+ BgNVBAcMBVRva3lvMRQwEgYDVQQKDAtIYXRzdW5lTWlrdTESMBAGA1UEAwwJbG9j
7
+ YWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv1ChrQuEuVEA
8
+ 2KdEfWbfZ2b+vj7g878AIrVCR6cuc5YzLb79lvJ8lWr9SzuGsiNir+z/1up/dnPf
9
+ kdnAK9zm3rnAVkgGGM0WG+uEwOhXRe1yGb2PNMDzj0XzfE77QI6b+SyiHG6FpDrD
10
+ sztI9GfyU+dJNxP8ygyJ5Xq7XKlOZ7emW9ceq0I4eNEXmuCriS5zHJr+G61plnX5
11
+ vANmalVumKH0nkKAjQxxvs8jlUVO2KESUPq8sSiO1ijBw+aTOTY5qryRCRlNzvzb
12
+ uCE8e2FPKogbmO/O9wyL1vW2q9RQFFvg06X6Qf46oQGrisAua8HE7Ny5LoDXaB7N
13
+ lM9dNZ8M/QIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCouD3GnuDy3j/aliTIDIMh
14
+ nOHV6maXlJZYki26/HFdaLiLwM1+ghgMtVpRd/JY3w4H7tAz2x7Db5ZKvrCupdpN
15
+ rUvCYAk24ZE34s7WktS+OondzSjLCuVseHUBVHIDbpH9yGHRwZ4fm7jaVXq5wpJy
16
+ 8zKGMBZJH7omNyeV3ulC8GemmzZNpsdy1eS1ajLf8tGUOEBW3E1h+485E4/BqOKz
17
+ uGCx8zUgmNxvUt0yUNfYcBWHL+BOr5UWwpQ/qAqx9Hubs8nD1JZNgKpILlSYjMRV
18
+ graRRhUHs95AjppvzmCds8jdAQJXgzJ0ZLiRqsKZX2WllJSvrSOZXBlrNdB5tSHa
19
+ -----END CERTIFICATE-----
@@ -0,0 +1,16 @@
1
+ -----BEGIN CERTIFICATE REQUEST-----
2
+ MIICnDCCAYQCAQAwVzELMAkGA1UEBhMCSlAxDjAMBgNVBAgMBVRva3lvMQ4wDAYD
3
+ VQQHDAVUb2t5bzEUMBIGA1UECgwLSGF0c3VuZU1pa3UxEjAQBgNVBAMMCWxvY2Fs
4
+ aG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9Qoa0LhLlRANin
5
+ RH1m32dm/r4+4PO/ACK1QkenLnOWMy2+/ZbyfJVq/Us7hrIjYq/s/9bqf3Zz35HZ
6
+ wCvc5t65wFZIBhjNFhvrhMDoV0Xtchm9jzTA849F83xO+0COm/ksohxuhaQ6w7M7
7
+ SPRn8lPnSTcT/MoMieV6u1ypTme3plvXHqtCOHjRF5rgq4kucxya/hutaZZ1+bwD
8
+ ZmpVbpih9J5CgI0Mcb7PI5VFTtihElD6vLEojtYowcPmkzk2Oaq8kQkZTc7827gh
9
+ PHthTyqIG5jvzvcMi9b1tqvUUBRb4NOl+kH+OqEBq4rALmvBxOzcuS6A12gezZTP
10
+ XTWfDP0CAwEAAaAAMA0GCSqGSIb3DQEBCwUAA4IBAQAnwC2nOl/tFm47UpXmx1PF
11
+ OKLM9JD2P6r5Snp3R5u814FFIwgXJwz6+WTCQLqls28r4OTLK/W3me/m5L4GO/0U
12
+ bUsVpYrAmfEbh7DSh1J3KFf7eVTbRpxfj9SvTWXnge2yOnXjDld4iZiqA8azSGi6
13
+ YNY5K4AOw9s+y/LBYrLAm5Xa8WkPmF4Ufbf1ErpbvLGl38csJHpi4SZpXG5eVdDS
14
+ EJGJG8Tjf+EM8+VeTZ0ct63bkt9TnBgYcHurhuFRJX1thz3epkA4uQi5a8ZDcLe4
15
+ LHrHr12SyXuXFJrCT4th2itZjxRY9y8Vr5CFHtcaC7vbUVJDmX2pFRRQAD+4493/
16
+ -----END CERTIFICATE REQUEST-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEpAIBAAKCAQEAv1ChrQuEuVEA2KdEfWbfZ2b+vj7g878AIrVCR6cuc5YzLb79
3
+ lvJ8lWr9SzuGsiNir+z/1up/dnPfkdnAK9zm3rnAVkgGGM0WG+uEwOhXRe1yGb2P
4
+ NMDzj0XzfE77QI6b+SyiHG6FpDrDsztI9GfyU+dJNxP8ygyJ5Xq7XKlOZ7emW9ce
5
+ q0I4eNEXmuCriS5zHJr+G61plnX5vANmalVumKH0nkKAjQxxvs8jlUVO2KESUPq8
6
+ sSiO1ijBw+aTOTY5qryRCRlNzvzbuCE8e2FPKogbmO/O9wyL1vW2q9RQFFvg06X6
7
+ Qf46oQGrisAua8HE7Ny5LoDXaB7NlM9dNZ8M/QIDAQABAoIBAQCmtMkc88OEg8w7
8
+ /Y0VxNV40eu6tSnp245vsAiATXKRr9kKzLlGlifvP1pV+xnFEkaFS/wnNxE4k4HG
9
+ IrtsvUHD5JJv3LTLWbIhRBnaytp5iY16Vo56BoR1XRvtPxl6yImrF7RvF/OGBtrO
10
+ zCMnLYigihJnVxhYq5Jhj4/CD5nNj11L+1A6wb28HHNLYvMh8QSp5+QriZ5Ehugb
11
+ a99Y5d/5JoAaDDZpUpmtOMp11pfhM3pRNa55qvckPuCTAT5xcEJbxGpIKWDK+8OL
12
+ a83mASrSPp7QRIEpKlQaQF9DoFqBZgKHYsCFebFopA5lBtqO0GlYaXJQCk3tRp5b
13
+ /JyBJzK1AoGBAN3tjqcqFKJXfAb9ovtlfjX1KMxZ2ZWwc+CeYzfNTcT42uYdqfSq
14
+ 7d1RXdfZbJEpLsd+HMeUfIg/R5XWI2jIXa3Qj19LsTpOUZi6o7ceTZZgp2fCYloA
15
+ reyAEo5zxCVNjwVYrso5hFHe8nns039qkmytZCwgRuR9PEYusGnmF8rDAoGBANyv
16
+ 5Aq5btqfrxv+CYmC8Wu2ghFScsxRP++IHEx7wMWfqKztTX0WbMO40/NVmRF/Ntoy
17
+ 65YtixY+DpnqRD8Sd1CjfwcfqGsPLfpnVkEq2xUPmx2TIAnY1/drap70jJm1mOyd
18
+ yWxKQYwdX0ZOAPvQi+snrVQRYADuw7mCcqtTos0/AoGAG2KQAtKvfyTaeiZcMTdh
19
+ 7piU8zp3HgCLHAGPbrhXy2GF6XVpnnZlKbU7pkH/Ip55VkaamIobH9jnJXcqIWjw
20
+ Hl2pA3JcqTw212jYgOUtX8wHfEdBSafhzlgzcf6ZCp1ac6dw0iVszYl8VE1D/+oP
21
+ rXdr8AH/nXxSrrpeLIMnFm8CgYEAnjnN+pJxFHahCiTdmaY0idHU965xeGRYvtiL
22
+ 0Zp44DhUq4eIo0LMwJdn/3NDx/O51D/mAUquCkh8F4aLX91RhpNypBzil7/Oa1Zj
23
+ 1V1wrmz9/fpaYjUCwvZU/5q+pAY7moqWu/mRfXAhuzp6IhGn//X2o+vBNWn7Eqqg
24
+ pI3Wj+kCgYArJJZOj3srjNij++FWtgBmP7/gTdIJNybkpa01ub5vBYDmi77uj0oD
25
+ zDCZMwsJ/nRJBJ4a1U7B5VSy36UJN1JvY4xriR+yaOb0ttNb+pEzjSENchsqwcez
26
+ 8ogUa3vR+xMXy/wQVZrMm00cQktzQbTZI23aNIWKsevJI28wXcBbLQ==
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,30 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ Proc-Type: 4,ENCRYPTED
3
+ DEK-Info: AES-128-CBC,4BBDC20C90C15D774E6E07EDEA6BC54A
4
+
5
+ /rzYRt/Z0PCttHRYiKVFxMlPjKoOlQSEiRPJKTgAGLYDsZKv4DQL9EN5cVMoSCz4
6
+ N+90H4d6ycDa+o/G2U1g79LjKa6REzelSDIjnHDOBT06c1i7859IGZLQNjcI81mW
7
+ q38exdgm4VXB9qIjHEbjM0lj6dRlbx7ebfqrNcpm42q/7QgWljjyjVTwfTz4T8CI
8
+ CPe+d7d8ukr/CCehtcP3aLOQN6rZ3fVuROdzuQ3lUEdcswbe11RTKZvmMsBLOZ2i
9
+ ws4ot/JgXkHjO1oRJk1AUq0i16p3AfQdo/jCVvverMVuuruDxBu5uMefgj03sR8G
10
+ Anh3Og8F76JGGgN6HDZmPCuW7MIt7UjV4mBCbARcNVWFEcsnYbeLqcKD6J11IbOm
11
+ niXEgWMS+b+YNCYdkbwVhAHftCvRUAaRN1kcPNuc7cX5oEXTILfYzw3cdxiugwNN
12
+ 7/USXcgmH8R23sDMnZI8gJTjDmynTW8X0ftXLGPmkc6oDZGk6NfRoH9bi+Vue9kj
13
+ rjz27Gs/4j7v5s2KigMeTSqx8tCMj0TVmvE4tYjyp9R7xB5lZ4+/uPB9JRoImpAA
14
+ 5MbgrnPYvyw4vchBs8CBHVG/cy0K75aKX7Efw5oUZ/NObm6cHb8EYU5ODBy08erb
15
+ 40INhJDcop+YG5ElO06RzEp1CyDM/S9d3L7NatVyDS3Vkd7SKsxoqrNOJ4X+UNeO
16
+ swyfmzsXkBvV5bTAql2PPnS1fNrdsTCS1khf2Hbb1OUywAAD2IvakhTANasOcLEU
17
+ sU5Wvdqu3EEhiLsTUi0LAXU/vH1WxD0VKQiUpVSpo95Xlrz21QEFOcrEKeCByjIj
18
+ AKbYgQDI6p/6OcYIT7q7hG5BKGbskDSz+p3Bu/q68VTMzjHTtJwTj0W+46+nyu9U
19
+ Mc5DCUScNXyz8wdrZhbUh12HgyY98Yze87hJ5YKCuo2P6ylm6PNFDctRjMoBTDrX
20
+ xLvKWhH0sp8ZTi2MZVdENzuR/w9OuCstkKDvApfFdyhsqSdwW40moa4YfjQVLhgb
21
+ ZsKwZodz7fhGYkzGP8aizRJWr3gXLiwwBy+Ko20aVU+8hQmcT6OUV/B5gINY0m7/
22
+ Bxeqjiijg7AyCO3ilh3w3LpCOr4Uk9bGQnCMHgi15vH8w9W/akbWRSxCchSwWbBX
23
+ fZG8KXSH7h9QNwq19MfHSnDd0mwt7M+oFO3EmZUDHKca5OuVWDEn3JXavQo8jRwT
24
+ yWSWFeeits6RIw/XN6c4EKtG+Y0wR1hAxlqPUq40vgEGwTBY4iLbPbgr3v6wXi0x
25
+ C054QfBigmx4yNATIB+DGGpEi3EGhfwfSaw7W7gmSL3W9XzKqr4JQBe6azMYWFGF
26
+ COZe6FqnKEUJq/5HqChWNvhHl8kic72sjD/fIIadSAVEZ1/e4XegL7GQ7dckyGV6
27
+ zKZhtLI+jfiFc5Lcr8wPwvoxb3ez1mAq9MOl77mQGMRDSq+JTnUeG5COt6Gjka9Q
28
+ 9iqaePPF+rRz65jfYS9FJWI6eL1WyPXu61mbjhkWcnC8GTSBeVNsSXl27m1QIKUv
29
+ ftiF57yNlZzxf4wWzbqsRZHbwcC/pEXMwHK415am3yL0sJE8bqtGcz+V6CXXKrFV
30
+ -----END RSA PRIVATE KEY-----
@@ -1,39 +1,39 @@
1
- require 'webrick'
2
- require 'webrick/httpproxy'
3
-
4
- class StubProxy
5
- def initialize
6
- create_proxy
7
- end
8
-
9
- def start
10
- @thread = Thread.new { @proxy.start }
11
- end
12
-
13
- def shutdown
14
- @proxy.shutdown
15
-
16
- # wait until webrick was shutting down
17
- while true
18
- break if @thread.status == false
19
-
20
- # issue webrick shutdown once more
21
- @proxy.shutdown
22
- sleep 1
23
- end
24
-
25
- # then exit thread
26
- @thread.exit
27
- end
28
-
29
- private
30
- def create_proxy
31
- @log_file = File.open("stub_proxy.log", "a+")
32
- @log = WEBrick::Log.new @log_file
33
- @access_log = [
34
- [@log_file, WEBrick::AccessLog::COMBINED_LOG_FORMAT],
35
- ]
36
-
37
- @proxy = WEBrick::HTTPProxyServer.new :Port => 4040, :Logger => @log, :AccessLog => @access_log
38
- end
39
- end
1
+ require 'webrick'
2
+ require 'webrick/httpproxy'
3
+
4
+ class StubProxy
5
+ def initialize
6
+ create_proxy
7
+ end
8
+
9
+ def start
10
+ @thread = Thread.new { @proxy.start }
11
+ end
12
+
13
+ def shutdown
14
+ @proxy.shutdown
15
+
16
+ # wait until webrick was shutting down
17
+ while true
18
+ break if @thread.status == false
19
+
20
+ # issue webrick shutdown once more
21
+ @proxy.shutdown
22
+ sleep 1
23
+ end
24
+
25
+ # then exit thread
26
+ @thread.exit
27
+ end
28
+
29
+ private
30
+ def create_proxy
31
+ @log_file = File.open("stub_proxy.log", "a+")
32
+ @log = WEBrick::Log.new @log_file
33
+ @access_log = [
34
+ [@log_file, WEBrick::AccessLog::COMBINED_LOG_FORMAT],
35
+ ]
36
+
37
+ @proxy = WEBrick::HTTPProxyServer.new :Port => 4040, :Logger => @log, :AccessLog => @access_log
38
+ end
39
+ end
@@ -1,119 +1,134 @@
1
- require 'webrick'
2
-
3
- class DeleteService < WEBrick::HTTPServlet::AbstractServlet
4
- def service(req, res)
5
- if req.request_method != "DELETE"
6
- res.status = 405
7
- else
8
- res.status = 200
9
- res['Content-Type'] = 'application/json'
10
- res.body = '{ "status": "OK" }'
11
- end
12
- end
13
- end
14
-
15
- class StubServer
16
- def initialize
17
- create_server
18
-
19
- # mount handler
20
- @server.mount_proc '/', &method(:ok)
21
- @server.mount_proc '/not_exist', &method(:not_exist)
22
- @server.mount_proc '/timeout', &method(:timeout)
23
- @server.mount_proc '/internal_error', &method(:internal_error)
24
- @server.mount_proc '/redirect', &method(:redirect)
25
- @server.mount_proc '/protected', &method(:protected)
26
- @server.mount_proc '/custom_header', &method(:custom_header)
27
-
28
- @server.mount_proc '/method_post', &method(:method_post)
29
- @server.mount '/method_delete', DeleteService
30
- end
31
-
32
- def start
33
- @thread = Thread.new { @server.start }
34
- end
35
-
36
- def shutdown
37
- @server.shutdown
38
-
39
- # wait until webrick was shutting down
40
- while true
41
- break if @thread.status == false
42
-
43
- # issue webrick shutdown once more
44
- @server.shutdown
45
- sleep 1
46
- end
47
-
48
- # then exit thread
49
- @thread.exit
50
- end
51
-
52
- private
53
- def create_server
54
- @log_file = File.open("stub_server.log", "a+")
55
- @log = WEBrick::Log.new @log_file
56
- @access_log = [
57
- [@log_file, WEBrick::AccessLog::COMBINED_LOG_FORMAT],
58
- ]
59
-
60
- @server = WEBrick::HTTPServer.new :Port => 3939, :Logger => @log, :AccessLog => @access_log
61
- end
62
-
63
- def ok(req, res)
64
- res.status = 200
65
- res['Content-Type'] = 'application/json'
66
- res.body = '{ "status": "OK" }'
67
- end
68
-
69
- def not_exist(req, res)
70
- res.status = 404
71
- res.body = ''
72
- end
73
-
74
- def timeout(req, res)
75
- sleep 3
76
-
77
- res.status = 200
78
- res['Content-Type'] = 'application/json'
79
- res.body = '{ "status": "OK" }'
80
- end
81
-
82
- def internal_error(req, res)
83
- res.status = 500
84
- res.body = ''
85
- end
86
-
87
- def redirect(req, res)
88
- res.set_redirect WEBrick::HTTPStatus::TemporaryRedirect, "http://127.0.0.1:3939/"
89
- end
90
-
91
- def protected(req, res)
92
- WEBrick::HTTPAuth.basic_auth(req, res, 'protected') do |user, password|
93
- user == 'HatsuneMiku' && password == '3939'
94
- end
95
-
96
- res.status = 200
97
- res['Content-Type'] = 'application/json'
98
- res.body = '{ "status": "OK" }'
99
- end
100
-
101
- def custom_header(req, res)
102
- res.header["HATSUNE-MIKU"] = req["HATSUNE-MIKU"] if req["HATSUNE-MIKU"]
103
-
104
- res.status = 200
105
- res['Content-Type'] = 'application/json'
106
- res.body = '{ "status": "OK" }'
107
- end
108
-
109
- def method_post(req, res)
110
- if req.request_method != "POST"
111
- res.status = 405
112
- else
113
- res.status = 200
114
- res['Content-Type'] = 'application/json'
115
- res.body = '{ "status": "OK" }'
116
- end
117
- end
118
- end
119
-
1
+ require 'webrick'
2
+ require 'webrick/https'
3
+
4
+ class DeleteService < WEBrick::HTTPServlet::AbstractServlet
5
+ def service(req, res)
6
+ if req.request_method != "DELETE"
7
+ res.status = 405
8
+ else
9
+ res.status = 200
10
+ res['Content-Type'] = 'application/json'
11
+ res.body = '{ "status": "OK" }'
12
+ end
13
+ end
14
+ end
15
+
16
+ class StubServer
17
+ def initialize(port=3939, ssl_enable=false)
18
+ @port = port
19
+ @ssl_enable = ssl_enable
20
+
21
+ create_server
22
+
23
+ # mount handler
24
+ @server.mount_proc '/', &method(:ok)
25
+ @server.mount_proc '/not_exist', &method(:not_exist)
26
+ @server.mount_proc '/timeout', &method(:timeout)
27
+ @server.mount_proc '/internal_error', &method(:internal_error)
28
+ @server.mount_proc '/redirect', &method(:redirect)
29
+ @server.mount_proc '/protected', &method(:protected)
30
+ @server.mount_proc '/custom_header', &method(:custom_header)
31
+
32
+ @server.mount_proc '/method_post', &method(:method_post)
33
+ @server.mount '/method_delete', DeleteService
34
+ end
35
+
36
+ def start
37
+ @thread = Thread.new { @server.start }
38
+ end
39
+
40
+ def shutdown
41
+ @server.shutdown
42
+
43
+ # wait until webrick was shutting down
44
+ while true
45
+ break if @thread.status == false
46
+
47
+ # issue webrick shutdown once more
48
+ @server.shutdown
49
+ sleep 1
50
+ end
51
+
52
+ # then exit thread
53
+ @thread.exit
54
+ end
55
+
56
+ private
57
+ def create_server
58
+ @log_file = File.open("stub_server.log", "a+")
59
+ @log = WEBrick::Log.new @log_file
60
+ @access_log = [
61
+ [@log_file, WEBrick::AccessLog::COMBINED_LOG_FORMAT],
62
+ ]
63
+
64
+
65
+ if @ssl_enable
66
+ ssl_basepath = File.join(File.dirname(__FILE__), ".ssl")
67
+ @server = WEBrick::HTTPServer.new :Port => @port,
68
+ :SSLEnable => true,
69
+ :Logger => @log, :AccessLog => @access_log,
70
+ :SSLPrivateKey => OpenSSL::PKey::RSA.new(File.open(File.join(ssl_basepath, "server.key")).read),
71
+ :SSLCertificate => OpenSSL::X509::Certificate.new(File.open(File.join(ssl_basepath, "server.crt")).read),
72
+ :SSLCertName => [["CN", "localhost"]]
73
+ else
74
+ @server = WEBrick::HTTPServer.new :Port => @port,
75
+ :Logger => @log, :AccessLog => @access_log
76
+ end
77
+ end
78
+
79
+ def ok(req, res)
80
+ res.status = 200
81
+ res['Content-Type'] = 'application/json'
82
+ res.body = '{ "status": "OK" }'
83
+ end
84
+
85
+ def not_exist(req, res)
86
+ res.status = 404
87
+ res.body = ''
88
+ end
89
+
90
+ def timeout(req, res)
91
+ sleep 3
92
+
93
+ res.status = 200
94
+ res['Content-Type'] = 'application/json'
95
+ res.body = '{ "status": "OK" }'
96
+ end
97
+
98
+ def internal_error(req, res)
99
+ res.status = 500
100
+ res.body = ''
101
+ end
102
+
103
+ def redirect(req, res)
104
+ res.set_redirect WEBrick::HTTPStatus::TemporaryRedirect, "http://127.0.0.1:3939/"
105
+ end
106
+
107
+ def protected(req, res)
108
+ WEBrick::HTTPAuth.basic_auth(req, res, 'protected') do |user, password|
109
+ user == 'HatsuneMiku' && password == '3939'
110
+ end
111
+
112
+ res.status = 200
113
+ res['Content-Type'] = 'application/json'
114
+ res.body = '{ "status": "OK" }'
115
+ end
116
+
117
+ def custom_header(req, res)
118
+ res.header["HATSUNE-MIKU"] = req["HATSUNE-MIKU"] if req["HATSUNE-MIKU"]
119
+
120
+ res.status = 200
121
+ res['Content-Type'] = 'application/json'
122
+ res.body = '{ "status": "OK" }'
123
+ end
124
+
125
+ def method_post(req, res)
126
+ if req.request_method != "POST"
127
+ res.status = 405
128
+ else
129
+ res.status = 200
130
+ res['Content-Type'] = 'application/json'
131
+ res.body = '{ "status": "OK" }'
132
+ end
133
+ end
134
+ end