From 6647d48958afdd2279674f24f343ae76cb26c7de Mon Sep 17 00:00:00 2001 From: zachmann <gabriel.zachmann@kit.edu> Date: Fri, 29 Jul 2022 10:42:11 +0200 Subject: [PATCH] add token_type to introspection response --- internal/endpoints/tokeninfo/introspect.go | 5 ++++- internal/endpoints/tokeninfo/pkg/tokenIntrospectResponse.go | 2 ++ internal/endpoints/tokeninfo/tokeninfo.go | 2 +- internal/server/ssh/tokeninfo.go | 3 ++- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/internal/endpoints/tokeninfo/introspect.go b/internal/endpoints/tokeninfo/introspect.go index ebbae0d9..e9d7daec 100644 --- a/internal/endpoints/tokeninfo/introspect.go +++ b/internal/endpoints/tokeninfo/introspect.go @@ -12,6 +12,7 @@ import ( "github.com/oidc-mytoken/server/internal/model" "github.com/oidc-mytoken/server/internal/utils/auth" "github.com/oidc-mytoken/server/internal/utils/errorfmt" + model2 "github.com/oidc-mytoken/server/shared/model" eventService "github.com/oidc-mytoken/server/shared/mytoken/event" event "github.com/oidc-mytoken/server/shared/mytoken/event/pkg" mytoken "github.com/oidc-mytoken/server/shared/mytoken/pkg" @@ -21,6 +22,7 @@ import ( func HandleTokenInfoIntrospect( rlog log.Ext1FieldLogger, mt *mytoken.Mytoken, + origionalTokenType model2.ResponseType, clientMetadata *api.ClientMetaData, ) model.Response { // If we call this function it means the token is valid. @@ -53,7 +55,8 @@ func HandleTokenInfoIntrospect( TokeninfoIntrospectResponse: api.TokeninfoIntrospectResponse{ Valid: true, }, - Token: usedToken, + Token: usedToken, + TokenType: origionalTokenType, }, } } diff --git a/internal/endpoints/tokeninfo/pkg/tokenIntrospectResponse.go b/internal/endpoints/tokeninfo/pkg/tokenIntrospectResponse.go index 8871272f..9187ddec 100644 --- a/internal/endpoints/tokeninfo/pkg/tokenIntrospectResponse.go +++ b/internal/endpoints/tokeninfo/pkg/tokenIntrospectResponse.go @@ -3,11 +3,13 @@ package pkg import ( "github.com/oidc-mytoken/api/v0" + "github.com/oidc-mytoken/server/shared/model" mytoken "github.com/oidc-mytoken/server/shared/mytoken/pkg" ) // TokeninfoIntrospectResponse is type for responses to tokeninfo introspect requests type TokeninfoIntrospectResponse struct { api.TokeninfoIntrospectResponse `json:",inline"` + TokenType model.ResponseType `json:"token_type"` Token mytoken.UsedMytoken `json:"token"` } diff --git a/internal/endpoints/tokeninfo/tokeninfo.go b/internal/endpoints/tokeninfo/tokeninfo.go index 0c8ad5da..7776bf3d 100644 --- a/internal/endpoints/tokeninfo/tokeninfo.go +++ b/internal/endpoints/tokeninfo/tokeninfo.go @@ -30,7 +30,7 @@ func HandleTokenInfo(ctx *fiber.Ctx) error { clientMetadata := ctxUtils.ClientMetaData(ctx) switch req.Action { case model2.TokeninfoActionIntrospect: - return HandleTokenInfoIntrospect(rlog, mt, clientMetadata).Send(ctx) + return HandleTokenInfoIntrospect(rlog, mt, req.Mytoken.OriginalTokenType, clientMetadata).Send(ctx) case model2.TokeninfoActionEventHistory: return HandleTokenInfoHistory(rlog, req, mt, clientMetadata).Send(ctx) case model2.TokeninfoActionSubtokenTree: diff --git a/internal/server/ssh/tokeninfo.go b/internal/server/ssh/tokeninfo.go index 24886205..2c25daba 100644 --- a/internal/server/ssh/tokeninfo.go +++ b/internal/server/ssh/tokeninfo.go @@ -8,6 +8,7 @@ import ( "github.com/oidc-mytoken/server/internal/endpoints/tokeninfo/pkg" "github.com/oidc-mytoken/server/internal/utils/auth" "github.com/oidc-mytoken/server/internal/utils/logger" + "github.com/oidc-mytoken/server/shared/model" mytoken "github.com/oidc-mytoken/server/shared/mytoken/pkg" ) @@ -25,7 +26,7 @@ func handleIntrospect(s ssh.Session) error { if errRes != nil { return writeErrRes(s, errRes) } - res := tokeninfo.HandleTokenInfoIntrospect(rlog, mt, &clientMetaData) + res := tokeninfo.HandleTokenInfoIntrospect(rlog, mt, model.ResponseTypeToken, &clientMetaData) if res.Status >= 400 { return writeErrRes(s, &res) } -- GitLab