we have a list of supported challenge types per plugin, so we only need
one generic implementation.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
}
sub supported_challenge_types {
}
sub supported_challenge_types {
}
sub extract_challenge {
}
sub extract_challenge {
- my ($self, $challenges, $c_type) = @_;
+ my ($self, $challenges) = @_;
die "no challenges defined\n" if !$challenges;
die "no challenges defined\n" if !$challenges;
- die "no challenge type is defined \n" if !$c_type;
- my $tmp_challenges = [ grep {$_->{type} eq $c_type} @$challenges ];
- die "no $c_type challenge defined in authorization\n"
- if ! scalar $tmp_challenges;
+ my $supported_types = $self->supported_challenge_types();
+
+ # preference returned by plugin!
+ foreach my $supported_type (@$supported_types) {
+ foreach my $challenge (@$challenges) {
+ next if $challenge->{type} ne $supported_type;
- my $challenge = $tmp_challenges->[0];
+ return $challenge;
+ }
+ }
+ die "plugin does not support any of the requested challenge types\n";
my $ACME_PATH = '/usr/share/proxmox-acme/proxmox-acme';
sub supported_challenge_types {
my $ACME_PATH = '/usr/share/proxmox-acme/proxmox-acme';
sub supported_challenge_types {
- return { 'dns-01' => 1 };
-sub extract_challenge {
- my ($self, $challenge) = @_;
-
- return PVE::ACME::Challenge->extract_challenge($challenge, 'dns-01');
-}
-
sub get_subplugins {
return $api_name_list;
}
sub get_subplugins {
return $api_name_list;
}
use base qw(PVE::ACME::Challenge);
sub supported_challenge_types {
use base qw(PVE::ACME::Challenge);
sub supported_challenge_types {
- return { 'http-01' => 1 };
-sub extract_challenge {
- my ($self, $challenge) = @_;
-
- return PVE::ACME::Challenge->extract_challenge($challenge, 'http-01');
-}
-
sub get_subplugins {
return [];
}
sub get_subplugins {
return [];
}