content_gateway 0.3.0 → 0.4.0
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/Changelog +3 -0
- data/README.md +15 -1
- data/lib/content_gateway/request.rb +13 -5
- data/lib/content_gateway/version.rb +1 -1
- data/spec/unit/content_gateway/request_spec.rb +20 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa85efc4f1c83ec7bdd1a6759fb1fda12afcbea4
|
4
|
+
data.tar.gz: aab412e14cccaac8e3110a82b9067e95dc5c034a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89ce05e82342e19a45d4cdf54bcbd065d6ee2f897230d5af0aaecad301b636c455fa4f531fc2dc5abe08fffa0bdb522d7d8c26383b5acfd32942459fd1e58241
|
7
|
+
data.tar.gz: bd179384af08df8c163fd8e2e32509bff4dcdbcf8aed44192dd27b5c039114edceec71f3018d9b759860b728086e61b0adcb547d7f20aab0ebf2e9e5d63f5641
|
data/Changelog
CHANGED
data/README.md
CHANGED
@@ -85,7 +85,7 @@ Optional parameters are supported:
|
|
85
85
|
- `stale_expires_in`: overwrites the default stale cache expiration time
|
86
86
|
- `skip_cache`: if set to `true`, ignores cache and stale cache
|
87
87
|
- `headers`: a hash with request headers
|
88
|
-
- `ssl_certificate`: a hash with ssl cert
|
88
|
+
- `ssl_certificate`: a hash with ssl cert, key, ssl version (see ssl support section below)
|
89
89
|
|
90
90
|
Every other parameter is passed to URLGenerator `generate` method (like query string parameters).
|
91
91
|
|
@@ -133,6 +133,20 @@ gateway.get_json("/path.json", skip_cache: true, ssl_certificate: ssl)
|
|
133
133
|
gateway.post("/api/post_example", payload: { param1: "value" }, ssl_certificate: ssl)
|
134
134
|
```
|
135
135
|
|
136
|
+
You can use ssl_version to specify which version you need. (You can use with client cert and key or use it alone) See example below:
|
137
|
+
|
138
|
+
```ruby
|
139
|
+
ssl = {
|
140
|
+
ssl_version: "SSLv23"
|
141
|
+
}
|
142
|
+
|
143
|
+
gateway.get("/path", timeout: 3, ssl_certificate: ssl)
|
144
|
+
|
145
|
+
gateway.get_json("/path.json", skip_cache: true, ssl_certificate: ssl)
|
146
|
+
|
147
|
+
gateway.post("/api/post_example", payload: { param1: "value" }, ssl_certificate: ssl)
|
148
|
+
```
|
149
|
+
|
136
150
|
## Authors
|
137
151
|
|
138
152
|
- [Túlio Ornelas](https://github.com/tulios)
|
@@ -42,12 +42,20 @@ module ContentGateway
|
|
42
42
|
private
|
43
43
|
|
44
44
|
def load_ssl_params h, params
|
45
|
-
|
46
|
-
|
45
|
+
ssl_client_cert = params[:ssl_certificate][:ssl_client_cert]
|
46
|
+
ssl_client_key = params[:ssl_certificate][:ssl_client_key]
|
47
|
+
if ssl_client_cert || ssl_client_key
|
48
|
+
client_cert_file = File.read ssl_client_cert
|
49
|
+
client_cert_key = File.read ssl_client_key
|
50
|
+
|
51
|
+
h[:ssl_client_cert] = OpenSSL::X509::Certificate.new(client_cert_file)
|
52
|
+
h[:ssl_client_key] = OpenSSL::PKey::RSA.new(client_cert_key)
|
53
|
+
h[:verify_ssl] = OpenSSL::SSL::VERIFY_NONE
|
54
|
+
end
|
55
|
+
|
56
|
+
ssl_version = params[:ssl_certificate][:ssl_version]
|
57
|
+
h[:ssl_version] = ssl_version if ssl_version
|
47
58
|
|
48
|
-
h[:ssl_client_cert] = OpenSSL::X509::Certificate.new(client_cert_file)
|
49
|
-
h[:ssl_client_key] = OpenSSL::PKey::RSA.new(client_cert_key)
|
50
|
-
h[:verify_ssl] = OpenSSL::SSL::VERIFY_NONE
|
51
59
|
h
|
52
60
|
|
53
61
|
rescue Errno::ENOENT => e0
|
@@ -104,14 +104,32 @@ describe ContentGateway::Request do
|
|
104
104
|
|
105
105
|
context "requests with SSL" do
|
106
106
|
|
107
|
-
let(:ssl_certificate_params) { { ssl_client_cert: "test", ssl_client_key: "test"} }
|
108
|
-
let(:restclient_ssl_params) { { :
|
107
|
+
let(:ssl_certificate_params) { { ssl_client_cert: "test", ssl_client_key: "test", ssl_version: "SSLv23"} }
|
108
|
+
let(:restclient_ssl_params) { { ssl_client_cert: "cert", ssl_client_key: "key", verify_ssl: 0, ssl_version: "SSLv23" } }
|
109
109
|
let(:request_params_ssl) { request_params.merge! restclient_ssl_params }
|
110
110
|
|
111
111
|
let :subject_ssl do
|
112
112
|
ContentGateway::Request.new(:get, "/url", {}, {}, nil, ssl_certificate: ssl_certificate_params)
|
113
113
|
end
|
114
114
|
|
115
|
+
context "only with ssl version" do
|
116
|
+
let(:ssl_certificate_params) { { ssl_version: "SSLv23" } }
|
117
|
+
let(:restclient_ssl_params) { { ssl_version: "SSLv23" } }
|
118
|
+
let(:request_params_ssl) { request_params.merge! restclient_ssl_params }
|
119
|
+
|
120
|
+
it "should setup request with ssl version" do
|
121
|
+
expect(RestClient::Request).to receive(:new).with(request_params_ssl)
|
122
|
+
subject_ssl.execute
|
123
|
+
end
|
124
|
+
|
125
|
+
it "should not setup ssl certificates" do
|
126
|
+
allow(RestClient::Request).to receive(:new).with(request_params_ssl).and_return(client)
|
127
|
+
expect(OpenSSL::X509::Certificate).to_not receive(:new)
|
128
|
+
expect(OpenSSL::PKey::RSA).to_not receive(:new)
|
129
|
+
subject_ssl.execute
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
115
133
|
context "when request is successful" do
|
116
134
|
before do
|
117
135
|
allow(File).to receive(:read).with("test").and_return("cert_content")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: content_gateway
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Túlio Ornelas
|
@@ -14,7 +14,7 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date: 2015-
|
17
|
+
date: 2015-06-16 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: activesupport
|
@@ -155,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
155
155
|
version: '0'
|
156
156
|
requirements: []
|
157
157
|
rubyforge_project:
|
158
|
-
rubygems_version: 2.
|
158
|
+
rubygems_version: 2.4.5
|
159
159
|
signing_key:
|
160
160
|
specification_version: 4
|
161
161
|
summary: Content Gateway
|