puma-acme 0.1.7 → 0.1.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 43b6d1dcea1155f14c48dbbe4c47bc7ebe762f2b0038fbc46f01c99742e0b333
4
- data.tar.gz: 5b45027dffe9e5f8aaa71e632d86504162b9cb1807dc0dffca898f928daf2f78
3
+ metadata.gz: 2b4d5b3068b477bc92cdf7fe1c7f4a6c3c8639790195551f4164e3fc227234d8
4
+ data.tar.gz: 6720366b5a14eebcb08906a849488c42a6c8f28b0a0e9073abba1d81f6576657
5
5
  SHA512:
6
- metadata.gz: fe92c43245052c55eb488ab2303904d68c07ca0c41c07b0b48b1b66d32d03f68ebfa4cacbe7f8d66336abfa75bee7fa397e89fe55d98a6ca6e58292cf052db8c
7
- data.tar.gz: f009056926a174bb97fa49292cf21fb9d0ed6233e03214274d5e7f975ba310fca276fa12437a3af0c96b2b17d7b86492d3aae0ec6af356cc4d33ea1b99021bd7
6
+ metadata.gz: 5364f21424a664662d05d70c74435d66eceb0d0823b36601c88409fc513ff1767254ee3739d0d72fb4740bcc91af6b303912ffa27e43f0bb5d2e6c16732fe489
7
+ data.tar.gz: c9ef04b5033eeaa7200b9350960b269cb92c9ce1f87202b5e6ed3c1afe2986b8b521368fc01e9e53f79cc180c5f7520cd23bcfc93d71e46308d03181c7e19ff9
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## 0.1.8 - 07/29/24
4
+
5
+ - remove sinatra to simplify and fix some unintended parsing bugs
6
+ - drop jruby from CI matrix
7
+ - add base64 dependency for future compatibility
8
+
3
9
  ## 0.1.7 - 07/17/24
4
10
 
5
11
  - fix #closed? on nil error when shutting down puma
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- puma-acme (0.1.7)
4
+ puma-acme (0.1.8)
5
5
  acme-client (~> 2.0.13)
6
+ base64 (~> 0.2)
6
7
  pstore (~> 0.1)
7
8
  puma (~> 6.0)
8
9
  sinatra (>= 3.2)
@@ -40,12 +41,14 @@ GEM
40
41
  puma (6.4.2)
41
42
  nio4r (~> 2.0)
42
43
  r509 (1.0.1)
43
- rack (3.0.9.1)
44
+ rack (3.1.7)
44
45
  rack-protection (4.0.0)
45
46
  base64 (>= 0.1.0)
46
47
  rack (>= 3.0.0, < 4)
47
48
  rack-session (2.0.0)
48
49
  rack (>= 3.0.0)
50
+ rack-test (2.1.0)
51
+ rack (>= 1.3)
49
52
  rake (13.2.0)
50
53
  rexml (3.2.6)
51
54
  ruby2_keywords (0.0.5)
@@ -55,7 +58,7 @@ GEM
55
58
  rack-protection (= 4.0.0)
56
59
  rack-session (>= 2.0.0, < 3)
57
60
  tilt (~> 2.0)
58
- tilt (2.3.0)
61
+ tilt (2.4.0)
59
62
  uri (0.13.0)
60
63
  vcr (6.2.0)
61
64
  webmock (3.23.0)
@@ -72,6 +75,7 @@ DEPENDENCIES
72
75
  minitest-mock_expectations (~> 1.2)
73
76
  puma-acme!
74
77
  r509 (~> 1.0)
78
+ rack-test
75
79
  rake (~> 13.0)
76
80
  vcr (~> 6.1)
77
81
  webmock (~> 3.19)
@@ -3,16 +3,18 @@
3
3
  module Puma
4
4
  module Acme
5
5
  # ACME challenge response handler for HTTP-01 challenges.
6
- class Middleware < Sinatra::Base
6
+ class Middleware
7
7
  def initialize(app, manager:)
8
8
  @app = app
9
9
  @manager = manager
10
+ end
10
11
 
11
- super(app)
12
+ def call(env)
13
+ dup._call(env)
12
14
  end
13
15
 
14
- get '/.well-known/acme-challenge/:token' do
15
- if (token = params[:token]).nil?
16
+ def _call(env)
17
+ if (token = token(env)).nil?
16
18
  return @app.call(env)
17
19
  end
18
20
 
@@ -20,8 +22,15 @@ module Puma
20
22
  return @app.call(env)
21
23
  end
22
24
 
23
- content_type 'text/plain'
24
- answer.value
25
+ [200, {'content-type' => 'text/plain;charset=utf-8'}, [answer.value]]
26
+ end
27
+
28
+ private
29
+
30
+ def token(env)
31
+ path = ::Rack::Request.new(env).path_info
32
+ prefix = '/.well-known/acme-challenge/'
33
+ path[prefix.size..-1] if path.start_with?(prefix)
25
34
  end
26
35
  end
27
36
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Puma
4
4
  module Acme
5
- VERSION = '0.1.7'
5
+ VERSION = '0.1.8'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puma-acme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anchor Security, Inc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-17 00:00:00.000000000 Z
11
+ date: 2024-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: acme-client
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 2.0.13
27
+ - !ruby/object:Gem::Dependency
28
+ name: base64
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.2'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: pstore
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +136,20 @@ dependencies:
122
136
  - - "~>"
123
137
  - !ruby/object:Gem::Version
124
138
  version: '1.0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rack-test
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
125
153
  - !ruby/object:Gem::Dependency
126
154
  name: rake
127
155
  requirement: !ruby/object:Gem::Requirement