grenache-ruby-http 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/ssl/server-chain.pem +64 -0
- data/examples/worker_ssl.rb +1 -3
- data/grenache-ruby-http.gemspec +0 -1
- data/lib/grenache/http/version.rb +1 -1
- data/lib/grenache/http.rb +26 -36
- data/lib/grenache-ruby-http.rb +1 -1
- metadata +3 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15a1cf8dee8aa1f8916d109f769bd1e41af5995e
|
4
|
+
data.tar.gz: b0d81fe6ed1d46a42ae162aa63dfa48b57e117fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: baf12653020538a93f54d3a905b537f1ad9696df04f260846d8b6feac55b71aba0feaabd16d1099801bad7a2bb6f31c0ae6f2990812905c833fe057fecac0ca1
|
7
|
+
data.tar.gz: ba8c325edac6783ca4cace5b74fc4b6460eb468f4a7391abd5a69cb7c0cff0a5362f14e7734d365bb5d319f2ff53774355cc8ab174888fb2896956fbd6ba16cc
|
@@ -0,0 +1,64 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
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
|
32
|
+
-----END CERTIFICATE-----
|
33
|
+
-----BEGIN CERTIFICATE-----
|
34
|
+
MIIFgDCCA2gCCQDvmZA10HvRHTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UEBhMC
|
35
|
+
VVMxCzAJBgNVBAgMAk1BMQ8wDQYDVQQHDAZCb3N0b24xEzARBgNVBAoMCkV4YW1w
|
36
|
+
bGUgQ28xEDAOBgNVBAsMB3RlY2hvcHMxCzAJBgNVBAMMAmNhMSAwHgYJKoZIhvcN
|
37
|
+
AQkBFhFjZXJ0c0BleGFtcGxlLmNvbTAeFw0xNzA1MjIxMzQ0NDNaFw00NDEwMDYx
|
38
|
+
MzQ0NDNaMIGBMQswCQYDVQQGEwJVUzELMAkGA1UECAwCTUExDzANBgNVBAcMBkJv
|
39
|
+
c3RvbjETMBEGA1UECgwKRXhhbXBsZSBDbzEQMA4GA1UECwwHdGVjaG9wczELMAkG
|
40
|
+
A1UEAwwCY2ExIDAeBgkqhkiG9w0BCQEWEWNlcnRzQGV4YW1wbGUuY29tMIICIjAN
|
41
|
+
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0SrOAQlmrQTqnXqSiKpvhb/nd79r
|
42
|
+
59V8TY81yPiOaVXeIaCrIiDA66JzadzHHHHMt8sEsTI92BULNvQYsauRm8NmBPWJ
|
43
|
+
YKYpUj0FguG7NzDLruCsBUq1faZyLLOA2Dr33gTzJFaVtvD0Z9ig2UjTSbqEnCcY
|
44
|
+
fF6WkCcYWBE3xkyRZkuVZAaCu3PTKVvAkwxHkg4wS8feW/Z/VGLTmcd/lWvVgC1V
|
45
|
+
Kl7wwubE/8MXwjJlQBzkU5WotFHgXJMnepQTuqu5ZlDpOZehLPQ16LUjUIu0xnIt
|
46
|
+
8k+YJ3JXdvP5+ifx+0YK9NpoU717spKgsME4z1Q6foDiaGgwWJ5bZYXi2OVD64yj
|
47
|
+
FqKN4gdpe037OwgTxCJ2FS23Ijndzi/K+AULYXbjXUo/D+CXuJ/MfOXo8DHfI1ld
|
48
|
+
ZgiHw1co2f1KQmL+AJ/YAEoC3228JG31mvX2sXL2p65QU9DmTaOrAYCX/F5T1frs
|
49
|
+
jsO560Zpvs6C7Di8eQjrx3UhMz8zYSLT35/0HPPoLA9dkJOEDpg3NtLMuN1MigNZ
|
50
|
+
VxRyadXrka4q7s/mTS1+0NbJHv4JYwzYKa1pdFeX102I9GVS9VZXpmRqriki1Sh1
|
51
|
+
rb7YOuK+I92HIzIVpSeI/OB7xguH8rh+/vibB72SY18FJWyfGcr8ewwkPSVocZeu
|
52
|
+
9rCXIDLUY0Sojq8CAwEAATANBgkqhkiG9w0BAQUFAAOCAgEAbIPMMkzHlybXIr8z
|
53
|
+
4Dp/3czyPWLwjFfgeL4wM5Hm/JMxaFnsWgmkUdrvjlYofzaF+2U29FsDgcrkcCzD
|
54
|
+
gTCOOHG0Pw1i8R57Dt68ycP4/e0iPpMmuTpNSqB9DilGscKARhE85o0FivAUzvUY
|
55
|
+
RngIOtbf02OoaRbkAsmKdC4+PBNJbiS3U5V55r2HCv0zqXMFj4dXqfyWKkcZt3JR
|
56
|
+
8SkzUIhIVnwhTf8ZttXcsWmPMy3nqckcy6k3zLr7Gf63JJZAYecWwhydAtv4wRrm
|
57
|
+
f3FwIvRxPLKTc/2YXF77I9YvHgnLOvE2qlLNnajQgOcIYGvxizDVCqnMS+8oBHWb
|
58
|
+
uL6mZP4hOCL6ifynkAHltg59heM3WJ2MEwLjiSvMYY4otT4X9KxsRdsg0Gx96bVe
|
59
|
+
P4RBlW3ebxcOnFuoMC3WT22/1ETqpQbrWOD5mJkFa6Q8aE6yWLLcdJznxF2M0Mf8
|
60
|
+
PTh62cFJMC4E0gN9KRU+E/qBJsqTamHHAHjcaUYDBXsvtFDOlo1dbAzJylpwRUEg
|
61
|
+
F115KpRH6DLLexS5YB9bASIsXBK+Afwm0FOjqGiEd527qAk5UiamyomKXxQ+DIbc
|
62
|
+
6QdO7XGpM3molI7Zzf79O4QdlRNzNgqPeCRUJWe2L6G7KECNvNjWepN3+0xAq9BO
|
63
|
+
t53fDsW6Y1yw2xErpMGUHBQ05y4=
|
64
|
+
-----END CERTIFICATE-----
|
data/examples/worker_ssl.rb
CHANGED
@@ -3,9 +3,7 @@ require_relative '../lib/grenache-ruby-http.rb'
|
|
3
3
|
Grenache::Http.configure do |conf|
|
4
4
|
conf.grape_address = "http://127.0.0.1:40002/"
|
5
5
|
conf.key = File.expand_path('.') + "/ssl/server-key.pem"
|
6
|
-
conf.cert_pem = File.expand_path('.') + "/ssl/server-
|
7
|
-
conf.ca = File.expand_path('.') + "/ssl/ca-crt.pem"
|
8
|
-
conf.verify_mode = Grenache::SSL_VERIFY_PEER
|
6
|
+
conf.cert_pem = File.expand_path('.') + "/ssl/server-chain.pem"
|
9
7
|
conf.service_host = "localhost"
|
10
8
|
end
|
11
9
|
|
data/grenache-ruby-http.gemspec
CHANGED
data/lib/grenache/http.rb
CHANGED
@@ -1,7 +1,4 @@
|
|
1
|
-
require "puma/events"
|
2
|
-
|
3
1
|
module Grenache
|
4
|
-
|
5
2
|
class Http < Grenache::Base
|
6
3
|
|
7
4
|
def listen(key, port, opts={}, &block)
|
@@ -12,36 +9,29 @@ module Grenache
|
|
12
9
|
end
|
13
10
|
end
|
14
11
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
12
|
+
def start_http_service(port, &block)
|
13
|
+
EM.defer {
|
14
|
+
app = -> (env) {
|
15
|
+
req = ServiceMessage.parse(env['rack.input'].read)
|
16
|
+
fingerprint = extract_fingerprint(env['rack.peer_cert'])
|
17
|
+
e, payload = block.call(req, fingerprint)
|
18
|
+
err = e.kind_of?(Exception) ? e.message : e
|
19
|
+
[200,nil, ServiceMessage.new(payload, err, req.rid).to_json]
|
20
|
+
}
|
21
|
+
server = Thin::Server.new config.service_host, port, {signals: false}, app
|
22
|
+
if tls?
|
23
|
+
server.ssl = true
|
24
|
+
server.ssl_options = {
|
25
|
+
private_key_file: config.key,
|
26
|
+
cert_chain_file: config.cert_pem,
|
27
|
+
verify_peer: true
|
28
|
+
}
|
29
|
+
end
|
30
|
+
server.start
|
22
31
|
}
|
23
|
-
|
24
|
-
event = Puma::Events.new $stdout, $stderr
|
25
|
-
server = Puma::Server.new app, event
|
26
|
-
host = config.service_host
|
27
|
-
|
28
|
-
if tls?
|
29
|
-
ctx = Puma::MiniSSL::Context.new
|
30
|
-
ctx.key = config.key
|
31
|
-
ctx.cert = config.cert_pem
|
32
|
-
ctx.ca = config.ca
|
33
|
-
ctx.verify_mode = config.verify_mode
|
34
|
-
|
35
|
-
server.add_ssl_listener host, port, ctx
|
36
|
-
else
|
37
|
-
server.add_tcp_listener host, port
|
38
|
-
end
|
39
|
-
|
40
|
-
puts "starting server on port #{port}"
|
41
|
-
server.run
|
42
32
|
end
|
43
33
|
|
44
|
-
def request(key, payload, params
|
34
|
+
def request(key, payload, params={})
|
45
35
|
services = lookup(key)
|
46
36
|
if services.size > 0
|
47
37
|
json = ServiceMessage.new(payload,key).to_json
|
@@ -58,14 +48,18 @@ module Grenache
|
|
58
48
|
|
59
49
|
private
|
60
50
|
|
51
|
+
def tls?
|
52
|
+
!! config.cert_pem
|
53
|
+
end
|
54
|
+
|
61
55
|
def extract_fingerprint cert
|
62
56
|
return "" unless cert
|
63
57
|
cert = OpenSSL::X509::Certificate.new cert
|
64
58
|
OpenSSL::Digest::SHA1.new(cert.to_der).to_s
|
65
59
|
end
|
66
60
|
|
67
|
-
def
|
68
|
-
|
61
|
+
def http_client
|
62
|
+
@http_client ||= HttpClient.new(config)
|
69
63
|
end
|
70
64
|
|
71
65
|
def get_random_service services
|
@@ -78,9 +72,5 @@ module Grenache
|
|
78
72
|
end
|
79
73
|
service
|
80
74
|
end
|
81
|
-
|
82
|
-
def http_client
|
83
|
-
@http_client ||= HttpClient.new(config)
|
84
|
-
end
|
85
75
|
end
|
86
76
|
end
|
data/lib/grenache-ruby-http.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grenache-ruby-http
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bitfinex <info@bitfinex.com>
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-06-
|
11
|
+
date: 2017-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eventmachine
|
@@ -94,20 +94,6 @@ dependencies:
|
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '1.7'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: puma
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: 3.9.1
|
104
|
-
type: :runtime
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 3.9.1
|
111
97
|
description:
|
112
98
|
email:
|
113
99
|
- info@bitfinex.com
|
@@ -133,6 +119,7 @@ files:
|
|
133
119
|
- examples/ssl/client2-csr.pem
|
134
120
|
- examples/ssl/client2-key.pem
|
135
121
|
- examples/ssl/client2.cnf
|
122
|
+
- examples/ssl/server-chain.pem
|
136
123
|
- examples/ssl/server-crt.pem
|
137
124
|
- examples/ssl/server-csr.pem
|
138
125
|
- examples/ssl/server-key.pem
|