Merge pull request #1881 from cheukwing/selector-bug

Fix bug where solver with no selector causes nil pointer
This commit is contained in:
jetstack-bot
2019-07-11 11:35:49 +01:00
committed by GitHub
2 changed files with 39 additions and 2 deletions
+6 -2
View File
@@ -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
+33
View File
@@ -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) {