certmeister-rack 2.0.1 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8075a5f369ff2c907b33bbb338551a6b216da6cc
4
- data.tar.gz: ad72f0c51ef88e9e9eb7d86bc48e330c68e89683
3
+ metadata.gz: da16e9fcd1b8d322b5635fc303996d8a06afa13f
4
+ data.tar.gz: 97ab68b75f5dd5b56aa074a12ff3b941c58a0158
5
5
  SHA512:
6
- metadata.gz: ac799b6d1407909e1d7cb45734b1d0ebc457453c0fe8ed7c4d205d3dd68cbce0f69848d0be34e5d795925e38fa2f6e174764167340dab7a94ce50d5416729692
7
- data.tar.gz: 57c8b22ed97efe821fa1a05e5cd7c642f23c63179c25e8ff131d0d74f580b1de1d8b8a0c80eb2391ac664a63f39de5aecf702901e48f505713d6df78177e5fe1
6
+ metadata.gz: 2b5503f2a461e1fea094e38a79eeac2c4c8a4b1283530bbae85fb0ce06a16a16dc39b7d1651637b7a9ef5c67a848032f9b413875416d08b49ae20da82f366752
7
+ data.tar.gz: 65037176982a1a004c3cdaa1552cf9ef647138b48c1d1dce521e7994d3c423ceb112600c4f676bf2107b5b564eea19a91efbda3ae0e79e0ae677b692687018f7
@@ -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
@@ -2,7 +2,7 @@ module Certmeister
2
2
 
3
3
  module Rack
4
4
 
5
- VERSION = '2.0.1' unless defined?(VERSION)
5
+ VERSION = '2.1.0' unless defined?(VERSION)
6
6
 
7
7
  end
8
8
 
@@ -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) { double(Certmeister::Base, sign: response, fetch: response, remove: response) }
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.1
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-02-13 00:00:00.000000000 Z
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.0'
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.0'
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: