mirror of
https://github.com/wahyd4/cert-manager.git
synced 2026-08-11 22:28:57 +10:00
Merge pull request #1881 from cheukwing/selector-bug
Fix bug where solver with no selector causes nil pointer
This commit is contained in:
@@ -452,8 +452,12 @@ func challengeSpecForAuthorization(ctx context.Context, cl acmecl.Interface, iss
|
||||
continue
|
||||
}
|
||||
|
||||
if cfg.Selector == nil && selectedSolver == nil {
|
||||
dbg.Info("selecting solver due to nil selector and no previously selected solver")
|
||||
if cfg.Selector == nil {
|
||||
if selectedSolver != nil {
|
||||
dbg.Info("not selecting solver as previously selected solver has a just as or more specific selector")
|
||||
continue
|
||||
}
|
||||
dbg.Info("selecting solver due to match all selector and no previously selected solver")
|
||||
selectedSolver = cfg.DeepCopy()
|
||||
selectedChallenge = acmech
|
||||
continue
|
||||
|
||||
@@ -1412,6 +1412,39 @@ func TestChallengeSpecForAuthorization(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
"uses correct solver when selector explicitly names dnsName (reversed)": {
|
||||
acmeClient: basicACMEClient,
|
||||
issuer: &v1alpha1.Issuer{
|
||||
Spec: v1alpha1.IssuerSpec{
|
||||
IssuerConfig: v1alpha1.IssuerConfig{
|
||||
ACME: &v1alpha1.ACMEIssuer{
|
||||
Solvers: []v1alpha1.ACMEChallengeSolver{
|
||||
exampleComDNSNameSelectorSolver,
|
||||
emptySelectorSolverHTTP01,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
order: &v1alpha1.Order{
|
||||
Spec: v1alpha1.OrderSpec{
|
||||
DNSNames: []string{"example.com"},
|
||||
},
|
||||
},
|
||||
authz: &acmeapi.Authorization{
|
||||
Identifier: acmeapi.AuthzID{
|
||||
Value: "example.com",
|
||||
},
|
||||
Challenges: []*acmeapi.Challenge{acmeChallengeHTTP01},
|
||||
},
|
||||
expectedChallengeSpec: &v1alpha1.ChallengeSpec{
|
||||
Type: "http-01",
|
||||
DNSName: "example.com",
|
||||
Token: acmeChallengeHTTP01.Token,
|
||||
Key: "http01",
|
||||
Solver: &exampleComDNSNameSelectorSolver,
|
||||
},
|
||||
},
|
||||
}
|
||||
for name, test := range tests {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user