func tokenInfoHandler(t *testing.T, oauth2 fosite.OAuth2Provider, session fosite.Session) func(rw http.ResponseWriter, req *http.Request) { return func(rw http.ResponseWriter, req *http.Request) { ctx := fosite.NewContext() if _, err := oauth2.IntrospectToken(ctx, fosite.AccessTokenFromRequest(req), fosite.AccessToken, session); err != nil { rfcerr := fosite.ErrorToRFC6749Error(err) t.Logf("Info request failed because `%s`.", err.Error()) t.Logf("Stack: %s", err.(stackTracer).StackTrace()) http.Error(rw, rfcerr.Description, rfcerr.StatusCode) return } rw.WriteHeader(http.StatusNoContent) } }
func (o *Handler) writeAuthorizeError(w http.ResponseWriter, ar fosite.AuthorizeRequester, err error) { if !ar.IsRedirectURIValid() { var rfcerr = fosite.ErrorToRFC6749Error(err) redirectURI := o.ConsentURL query := redirectURI.Query() query.Add("error", rfcerr.Name) query.Add("error_description", rfcerr.Description) redirectURI.RawQuery = query.Encode() w.Header().Add("Location", redirectURI.String()) w.WriteHeader(http.StatusFound) return } o.OAuth2.WriteAuthorizeError(w, ar, err) }