acme-client 2.0.15 → 2.0.16
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.md +5 -0
- data/lib/acme/client/resources/directory.rb +9 -23
- data/lib/acme/client/version.rb +1 -1
- data/lib/acme/client.rb +23 -7
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f26a6196b6e5f7bfe464c6d5e3068f29a295c914aaa2af7a086b949cfb00e132
|
4
|
+
data.tar.gz: 20ae05784979ec85c880736ded0915de4ad07a743262eb203a089e7fd7fbf79c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c89f451807ab8f10529c3feabc4d96d961bddfc915eeaa2cc76d9f4ed31b9e6376e80327f82ce0daafa7df2d74e5585403b354cb53d1942b1e5bf0db9c4c0d0
|
7
|
+
data.tar.gz: 21970923591d7133201257ad95e456b429eb3d906bd12d1fcd17a0305ba2edce0e16d0bdd8edfbb03764d8d35b2a845f08a0f5e6e116385735d6e081b7d094e2
|
data/CHANGELOG.md
CHANGED
@@ -17,12 +17,13 @@ class Acme::Client::Resources::Directory
|
|
17
17
|
external_account_required: 'externalAccountRequired'
|
18
18
|
}
|
19
19
|
|
20
|
-
def initialize(
|
21
|
-
@
|
20
|
+
def initialize(client, **arguments)
|
21
|
+
@client = client
|
22
|
+
assign_attributes(**arguments)
|
22
23
|
end
|
23
24
|
|
24
25
|
def endpoint_for(key)
|
25
|
-
directory.fetch(key) do |missing_key|
|
26
|
+
@directory.fetch(key) do |missing_key|
|
26
27
|
raise Acme::Client::Error::UnsupportedOperation,
|
27
28
|
"Directory at #{@url} does not include `#{missing_key}`"
|
28
29
|
end
|
@@ -45,31 +46,16 @@ class Acme::Client::Resources::Directory
|
|
45
46
|
end
|
46
47
|
|
47
48
|
def meta
|
48
|
-
directory[:meta]
|
49
|
+
@directory[:meta]
|
49
50
|
end
|
50
51
|
|
51
52
|
private
|
52
53
|
|
53
|
-
def directory
|
54
|
-
@directory
|
55
|
-
|
56
|
-
|
57
|
-
def load_directory
|
58
|
-
body = fetch_directory
|
59
|
-
result = {}
|
60
|
-
result[:meta] = body.delete('meta')
|
54
|
+
def assign_attributes(directory:)
|
55
|
+
@directory = {}
|
56
|
+
@directory[:meta] = directory.delete('meta')
|
61
57
|
DIRECTORY_RESOURCES.each do |key, entry|
|
62
|
-
|
58
|
+
@directory[key] = URI(directory[entry]) if directory[entry]
|
63
59
|
end
|
64
|
-
result
|
65
|
-
rescue JSON::ParserError => exception
|
66
|
-
raise Acme::Client::Error::InvalidDirectory,
|
67
|
-
"Invalid directory url\n#{@directory} did not return a valid directory\n#{exception.inspect}"
|
68
|
-
end
|
69
|
-
|
70
|
-
def fetch_directory
|
71
|
-
http_client = Acme::Client::HTTPClient.new_acme_connection(url: @directory, options: @connection_options, client: nil, mode: nil)
|
72
|
-
response = http_client.get(@url)
|
73
|
-
response.body
|
74
60
|
end
|
75
61
|
end
|
data/lib/acme/client/version.rb
CHANGED
data/lib/acme/client.rb
CHANGED
@@ -44,7 +44,7 @@ class Acme::Client
|
|
44
44
|
|
45
45
|
@kid, @connection_options = kid, connection_options
|
46
46
|
@bad_nonce_retry = bad_nonce_retry
|
47
|
-
@
|
47
|
+
@directory_url = URI(directory)
|
48
48
|
@nonces ||= []
|
49
49
|
end
|
50
50
|
|
@@ -229,28 +229,44 @@ class Acme::Client
|
|
229
229
|
true
|
230
230
|
end
|
231
231
|
|
232
|
+
def directory
|
233
|
+
@directory ||= load_directory
|
234
|
+
end
|
235
|
+
|
232
236
|
def meta
|
233
|
-
|
237
|
+
directory.meta
|
234
238
|
end
|
235
239
|
|
236
240
|
def terms_of_service
|
237
|
-
|
241
|
+
directory.terms_of_service
|
238
242
|
end
|
239
243
|
|
240
244
|
def website
|
241
|
-
|
245
|
+
directory.website
|
242
246
|
end
|
243
247
|
|
244
248
|
def caa_identities
|
245
|
-
|
249
|
+
directory.caa_identities
|
246
250
|
end
|
247
251
|
|
248
252
|
def external_account_required
|
249
|
-
|
253
|
+
directory.external_account_required
|
250
254
|
end
|
251
255
|
|
252
256
|
private
|
253
257
|
|
258
|
+
def load_directory
|
259
|
+
Acme::Client::Resources::Directory.new(self, directory: fetch_directory)
|
260
|
+
end
|
261
|
+
|
262
|
+
def fetch_directory
|
263
|
+
response = get(@directory_url)
|
264
|
+
response.body
|
265
|
+
rescue JSON::ParserError => exception
|
266
|
+
raise Acme::Client::Error::InvalidDirectory,
|
267
|
+
"Invalid directory url\n#{@directory_url} did not return a valid directory\n#{exception.inspect}"
|
268
|
+
end
|
269
|
+
|
254
270
|
def prepare_order_identifiers(identifiers)
|
255
271
|
if identifiers.is_a?(Hash)
|
256
272
|
[identifiers]
|
@@ -351,6 +367,6 @@ class Acme::Client
|
|
351
367
|
end
|
352
368
|
|
353
369
|
def endpoint_for(key)
|
354
|
-
|
370
|
+
directory.endpoint_for(key)
|
355
371
|
end
|
356
372
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acme-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charles Barbier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -194,7 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
194
194
|
- !ruby/object:Gem::Version
|
195
195
|
version: '0'
|
196
196
|
requirements: []
|
197
|
-
rubygems_version: 3.4.
|
197
|
+
rubygems_version: 3.4.20
|
198
198
|
signing_key:
|
199
199
|
specification_version: 4
|
200
200
|
summary: Client for the ACME protocol.
|