diff --git a/internal/endpoints/tokeninfo/introspect.go b/internal/endpoints/tokeninfo/introspect.go index ebbae0d983a8240484cc205cd5d6a2922c6a922f..e9d7daec9017172abd4e694734800f8b2cc0634c 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 8871272f089a410464eaf0c3243567c5a9c5970b..9187ddec317a141e39f77b9a8c8559bfd8a9ebff 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 0c8ad5da12f133c750c0b9e42cb0077681bb6362..7776bf3d9e5455ac78b9b3a887ae0fa34a2bace2 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 248862058b93616618ea1a58b917030eb1101bf9..2c25daba8701412201a91cb2bbb5d694ed9a732a 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) }