38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
//go:build integration
|
|
|
|
package wfe2
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
"strconv"
|
|
|
|
"github.com/letsencrypt/boulder/issuance"
|
|
"github.com/letsencrypt/boulder/probs"
|
|
"github.com/letsencrypt/boulder/web"
|
|
)
|
|
|
|
// Issuer returns the Issuer Cert identified by the path (its IssuerNameID).
|
|
// Used by integration tests to handle requests for the AIA Issuer URL.
|
|
func (wfe *WebFrontEndImpl) Issuer(ctx context.Context, logEvent *web.RequestEvent, response http.ResponseWriter, request *http.Request) {
|
|
idStr := request.URL.Path
|
|
id, err := strconv.ParseInt(idStr, 10, 64)
|
|
if err != nil {
|
|
wfe.sendError(response, logEvent, probs.Malformed("Issuer ID must be an integer"), err)
|
|
return
|
|
}
|
|
|
|
issuer, ok := wfe.issuerCertificates[issuance.IssuerNameID(id)]
|
|
if !ok {
|
|
wfe.sendError(response, logEvent, probs.NotFound("Issuer ID did not match any known issuer"), nil)
|
|
return
|
|
}
|
|
|
|
response.Header().Set("Content-Type", "application/pkix-cert")
|
|
response.WriteHeader(http.StatusOK)
|
|
_, err = response.Write(issuer.Certificate.Raw)
|
|
if err != nil {
|
|
wfe.log.Warningf("Could not write response: %s", err)
|
|
}
|
|
}
|