fix: Change op.tokenHandler to follow the same pattern as the rest of the endpoint handlers (#210)

inside op: provide a standard endpoint handler that uses injected data.
This commit is contained in:
David Sharnoff 2022-09-29 22:39:23 -07:00 committed by GitHub
parent 29904e9446
commit 2d248b1a1a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -25,6 +25,12 @@ type Exchanger interface {
func tokenHandler(exchanger Exchanger) func(w http.ResponseWriter, r *http.Request) { func tokenHandler(exchanger Exchanger) func(w http.ResponseWriter, r *http.Request) {
return func(w http.ResponseWriter, r *http.Request) { return func(w http.ResponseWriter, r *http.Request) {
Exchange(w, r, exchanger)
}
}
//Exchange performs a token exchange appropriate for the grant type
func Exchange(w http.ResponseWriter, r *http.Request, exchanger Exchanger) {
grantType := r.FormValue("grant_type") grantType := r.FormValue("grant_type")
switch grantType { switch grantType {
case string(oidc.GrantTypeCode): case string(oidc.GrantTypeCode):
@ -55,7 +61,6 @@ func tokenHandler(exchanger Exchanger) func(w http.ResponseWriter, r *http.Reque
return return
} }
RequestError(w, r, oidc.ErrUnsupportedGrantType().WithDescription("%s not supported", grantType)) RequestError(w, r, oidc.ErrUnsupportedGrantType().WithDescription("%s not supported", grantType))
}
} }
//AuthenticatedTokenRequest is a helper interface for ParseAuthenticatedTokenRequest //AuthenticatedTokenRequest is a helper interface for ParseAuthenticatedTokenRequest