@ -12,19 +12,21 @@ import (
// Handler is the Admin API request handler.
type Handler struct {
acmeResponder acmeAdminResponderInterface
acmeResponder ACMEAdminResponder
policyResponder PolicyAdminResponder
}
// Route traffic and implement the Router interface.
//
// Deprecated: use Route(r api.Router, acmeResponder acmeAdminResponderInterface )
// Deprecated: use Route(r api.Router, acmeResponder ACMEAdminResponder, policyResponder PolicyAdminResponder )
func ( h * Handler ) Route ( r api . Router ) {
Route ( r , h . acmeResponder , h . policyResponder )
}
// NewHandler returns a new Authority Config Handler.
func NewHandler ( auth adminAuthority , adminDB admin . DB , acmeDB acme . DB , acmeResponder acmeAdminResponderInterface , policyResponder PolicyAdminResponder ) api . RouterHandler {
//
// Deprecated: use Route(r api.Router, acmeResponder ACMEAdminResponder, policyResponder PolicyAdminResponder)
func NewHandler ( auth adminAuthority , adminDB admin . DB , acmeDB acme . DB , acmeResponder ACMEAdminResponder , policyResponder PolicyAdminResponder ) api . RouterHandler {
return & Handler {
acmeResponder : acmeResponder ,
policyResponder : policyResponder ,
@ -36,7 +38,7 @@ var mustAuthority = func(ctx context.Context) adminAuthority {
}
// Route traffic and implement the Router interface.
func Route ( r api . Router , acmeResponder acmeAdminResponderInterface , policyResponder PolicyAdminResponder ) {
func Route ( r api . Router , acmeResponder ACMEAdminResponder , policyResponder PolicyAdminResponder ) {
authnz := func ( next http . HandlerFunc ) http . HandlerFunc {
return extractAuthorizeTokenAdmin ( requireAPIEnabled ( next ) )
}
@ -79,12 +81,17 @@ func Route(r api.Router, acmeResponder acmeAdminResponderInterface, policyRespon
r . MethodFunc ( "PATCH" , "/admins/{id}" , authnz ( UpdateAdmin ) )
r . MethodFunc ( "DELETE" , "/admins/{id}" , authnz ( DeleteAdmin ) )
// ACME responder
if acmeResponder != nil {
// ACME External Account Binding Keys
r . MethodFunc ( "GET" , "/acme/eab/{provisionerName}/{reference}" , acmeEABMiddleware ( acmeResponder . GetExternalAccountKeys ) )
r . MethodFunc ( "GET" , "/acme/eab/{provisionerName}" , acmeEABMiddleware ( acmeResponder . GetExternalAccountKeys ) )
r . MethodFunc ( "POST" , "/acme/eab/{provisionerName}" , acmeEABMiddleware ( acmeResponder . CreateExternalAccountKey ) )
r . MethodFunc ( "DELETE" , "/acme/eab/{provisionerName}/{id}" , acmeEABMiddleware ( acmeResponder . DeleteExternalAccountKey ) )
}
// Policy responder
if policyResponder != nil {
// Policy - Authority
r . MethodFunc ( "GET" , "/policy" , authorityPolicyMiddleware ( policyResponder . GetAuthorityPolicy ) )
r . MethodFunc ( "POST" , "/policy" , authorityPolicyMiddleware ( policyResponder . CreateAuthorityPolicy ) )
@ -106,5 +113,5 @@ func Route(r api.Router, acmeResponder acmeAdminResponderInterface, policyRespon
r . MethodFunc ( "PUT" , "/acme/policy/{provisionerName}/key/{keyID}" , acmePolicyMiddleware ( policyResponder . UpdateACMEAccountPolicy ) )
r . MethodFunc ( "DELETE" , "/acme/policy/{provisionerName}/reference/{reference}" , acmePolicyMiddleware ( policyResponder . DeleteACMEAccountPolicy ) )
r . MethodFunc ( "DELETE" , "/acme/policy/{provisionerName}/key/{keyID}" , acmePolicyMiddleware ( policyResponder . DeleteACMEAccountPolicy ) )
}
}