acme-client 2.0.15 → 2.0.16
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|