blob: 9ca2e76936de4b8638c8203083c19677de38c589 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
class Acme::Client::Resources::Authorization
HTTP01 = Acme::Client::Resources::Challenges::HTTP01
DNS01 = Acme::Client::Resources::Challenges::DNS01
TLSSNI01 = Acme::Client::Resources::Challenges::TLSSNI01
attr_reader :client, :uri, :domain, :status, :expires, :http01, :dns01, :tls_sni01
def initialize(client, uri, response)
@client = client
@uri = uri
assign_attributes(response.body)
end
def verify_status
response = @client.connection.get(@uri)
assign_attributes(response.body)
status
end
private
def assign_attributes(body)
@expires = Time.iso8601(body['expires']) if body.key? 'expires'
@domain = body['identifier']['value']
@status = body['status']
assign_challenges(body['challenges'])
end
def assign_challenges(challenges)
challenges.each do |attributes|
challenge = case attributes.fetch('type')
when 'http-01'
@http01 ||= HTTP01.new(self)
when 'dns-01'
@dns01 ||= DNS01.new(self)
when 'tls-sni-01'
@tls_sni01 ||= TLSSNI01.new(self)
end
challenge.assign_attributes(attributes) if challenge
end
end
end
|