// OnValidationUpdate is called when a given Authorization is updated by the VA. func (ra *RegistrationAuthorityImpl) OnValidationUpdate(authz core.Authorization) error { // Consider validation successful if any of the combinations // specified in the authorization has been fulfilled validated := map[int]bool{} for i, ch := range authz.Challenges { if ch.Status == core.StatusValid { validated[i] = true } } for _, combo := range authz.Combinations { comboValid := true for _, i := range combo { if !validated[i] { comboValid = false break } } if comboValid { authz.Status = core.StatusValid } } // If no validation succeeded, then the authorization is invalid // NOTE: This only works because we only ever do one validation if authz.Status != core.StatusValid { authz.Status = core.StatusInvalid } else { // TODO: Enable configuration of expiry time exp := time.Now().Add(365 * 24 * time.Hour) authz.Expires = &exp } // Finalize the authorization (error ignored) return ra.SA.FinalizeAuthorization(authz) }
// OnValidationUpdate is called when a given Authorization is updated by the VA. func (ra *RegistrationAuthorityImpl) OnValidationUpdate(authz core.Authorization) error { // Consider validation successful if any of the combinations // specified in the authorization has been fulfilled validated := map[int]bool{} for i, ch := range authz.Challenges { if ch.Status == core.StatusValid { validated[i] = true } } for _, combo := range authz.Combinations { comboValid := true for _, i := range combo { if !validated[i] { comboValid = false break } } if comboValid { authz.Status = core.StatusValid } } // If no validation succeeded, then the authorization is invalid // NOTE: This only works because we only ever do one validation if authz.Status != core.StatusValid { authz.Status = core.StatusInvalid } else { exp := ra.clk.Now().Add(ra.authorizationLifetime) authz.Expires = &exp } // Finalize the authorization err := ra.SA.FinalizeAuthorization(authz) if err != nil { return err } ra.stats.Inc("RA.FinalizedAuthorizations", 1, 1.0) return nil }
func (ra *RegistrationAuthorityImpl) OnValidationUpdate(authz core.Authorization) error { // Check to see whether the updated validations are sufficient // Current policy is to accept if any validation succeeded for _, val := range authz.Challenges { if val.Status == core.StatusValid { authz.Status = core.StatusValid break } } // If no validation succeeded, then the authorization is invalid // NOTE: This only works because we only ever do one validation if authz.Status != core.StatusValid { authz.Status = core.StatusInvalid } else { // TODO: Enable configuration of expiry time authz.Expires = time.Now().Add(365 * 24 * time.Hour) } // Finalize the authorization (error ignored) return ra.SA.FinalizeAuthorization(authz) }