certmeister-rack 2.0.1 → 2.1.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/lib/certmeister/rack/app.rb +6 -0
- data/lib/certmeister/rack/version.rb +1 -1
- data/spec/certmeister/rack/app_spec.rb +25 -1
- metadata +32 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da16e9fcd1b8d322b5635fc303996d8a06afa13f
|
4
|
+
data.tar.gz: 97ab68b75f5dd5b56aa074a12ff3b941c58a0158
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b5503f2a461e1fea094e38a79eeac2c4c8a4b1283530bbae85fb0ce06a16a16dc39b7d1651637b7a9ef5c67a848032f9b413875416d08b49ae20da82f366752
|
7
|
+
data.tar.gz: 65037176982a1a004c3cdaa1552cf9ef647138b48c1d1dce521e7994d3c423ceb112600c4f676bf2107b5b564eea19a91efbda3ae0e79e0ae677b692687018f7
|
data/lib/certmeister/rack/app.rb
CHANGED
@@ -19,6 +19,12 @@ module Certmeister
|
|
19
19
|
else
|
20
20
|
method_not_allowed
|
21
21
|
end
|
22
|
+
elsif req.path_info == '/ca_cert'
|
23
|
+
if req.request_method == 'GET'
|
24
|
+
ok(@ca.ca_cert_pem, 'application/x-pem-file')
|
25
|
+
else
|
26
|
+
method_not_allowed
|
27
|
+
end
|
22
28
|
elsif req.path_info =~ %r{^/certificate/(.+)}
|
23
29
|
req.params['cn'] = $1
|
24
30
|
req.params['ip'] = req.ip
|
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'rack/test'
|
3
|
+
require 'helpers/certmeister_config_helper'
|
4
|
+
require 'openssl'
|
3
5
|
|
4
6
|
require 'certmeister'
|
5
7
|
require 'certmeister/rack'
|
@@ -9,7 +11,10 @@ describe Certmeister::Rack::App do
|
|
9
11
|
include Rack::Test::Methods
|
10
12
|
|
11
13
|
let(:response) { double(Certmeister::Response).as_null_object }
|
12
|
-
let(:ca)
|
14
|
+
let(:ca) do
|
15
|
+
double(Certmeister::Base, ca_cert_pem: CertmeisterConfigHelper.valid_config.ca_cert,
|
16
|
+
sign: response, fetch: response, remove: response)
|
17
|
+
end
|
13
18
|
let(:app) { Certmeister::Rack::App.new(ca) }
|
14
19
|
|
15
20
|
it "GET /ping always PONGs (although one day we want a health check)" do
|
@@ -33,6 +38,25 @@ describe Certmeister::Rack::App do
|
|
33
38
|
expect(last_response.body).to eql "501 Not Implemented"
|
34
39
|
end
|
35
40
|
|
41
|
+
describe "GET /ca_cert" do
|
42
|
+
before(:each) do
|
43
|
+
get "/ca_cert"
|
44
|
+
end
|
45
|
+
|
46
|
+
it "returns 200 OK" do
|
47
|
+
expect(last_response.status).to eql 200
|
48
|
+
end
|
49
|
+
|
50
|
+
it "provides the PEM-encoded X.509 CA certificate used to sign certificate requests" do
|
51
|
+
ca_cert = OpenSSL::X509::Certificate.new(last_response.body)
|
52
|
+
expect(ca_cert.subject.to_s).to match(/CN=Certmeister Test CA/)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "describes the body as application/x-pem-file" do
|
56
|
+
expect(last_response.headers['Content-Type']).to eql 'application/x-pem-file'
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
36
60
|
describe "POST /certificate/:cn" do
|
37
61
|
|
38
62
|
context "parameter handling" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: certmeister-rack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sheldon Hearn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: certmeister
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '2.
|
19
|
+
version: '2.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '2.
|
26
|
+
version: '2.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +52,34 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.6'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 10.4.2
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 10.4.2
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.1'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.1'
|
55
83
|
description: This gem provides a rack application to offer an HTTP service around
|
56
84
|
certmeister, the conditional autosigning certificate authority.
|
57
85
|
email:
|