@@ -29,7 +29,7 @@ internal fun Route.Builder.introspect(tokenProvider: OAuth2TokenProvider) =
29
29
throw OAuth2Exception (OAuth2Error .INVALID_CLIENT .setDescription(msg), msg)
30
30
}
31
31
32
- request.verifyBearerToken (tokenProvider)?.let {
32
+ request.verifyToken (tokenProvider)?.let {
33
33
val claims = it.claims
34
34
json(
35
35
IntrospectResponse (
@@ -38,9 +38,9 @@ internal fun Route.Builder.introspect(tokenProvider: OAuth2TokenProvider) =
38
38
claims[" client_id" ].toString(),
39
39
claims[" username" ].toString(),
40
40
claims[" token_type" ].toString(),
41
- claims[" exp" ].toString() ,
42
- claims[" iat" ].toString() ,
43
- claims[" nbf" ].toString() ,
41
+ claims[" exp" ] as ? Long ,
42
+ claims[" iat" ] as ? Long ,
43
+ claims[" nbf" ] as ? Long ,
44
44
claims[" sub" ].toString(),
45
45
claims[" aud" ].toString(),
46
46
claims[" iss" ].toString(),
@@ -50,18 +50,14 @@ internal fun Route.Builder.introspect(tokenProvider: OAuth2TokenProvider) =
50
50
} ? : json(IntrospectResponse (false ))
51
51
}
52
52
53
- private fun OAuth2HttpRequest.verifyBearerToken (tokenProvider : OAuth2TokenProvider ): JWTClaimsSet ? {
54
- val tokenString = this .getToken()
55
- if (tokenString.isNullOrEmpty()) {
56
- return null
57
- }
58
-
53
+ private fun OAuth2HttpRequest.verifyToken (tokenProvider : OAuth2TokenProvider ): JWTClaimsSet ? {
54
+ val tokenString = this .formParameters.get(" token" )
59
55
val issuer = url.toIssuerUrl()
60
56
val jwkSet = tokenProvider.publicJwkSet(issuer.issuerId())
61
-
62
57
return try {
63
58
SignedJWT .parse(tokenString).verifySignatureAndIssuer(Issuer (issuer.toString()), jwkSet)
64
59
} catch (e: Exception ) {
60
+ log.debug(" token_introspection: failed signature validation" )
65
61
return null
66
62
}
67
63
}
@@ -80,14 +76,6 @@ private fun String.auth(method: String): String? {
80
76
?.last()
81
77
}
82
78
83
- private fun OAuth2HttpRequest.getToken (): String? {
84
- val tokenParams = this .formParameters
85
- if (tokenParams.map.isEmpty()) {
86
- return null
87
- }
88
- return tokenParams.get(" token" )
89
- }
90
-
91
79
@JsonInclude(JsonInclude .Include .NON_NULL )
92
80
data class IntrospectResponse (
93
81
@JsonProperty(" active" )
@@ -101,11 +89,11 @@ data class IntrospectResponse(
101
89
@JsonProperty(" token_type" )
102
90
val tokenType : String? = null ,
103
91
@JsonProperty(" exp" )
104
- val exp : String ? = null ,
92
+ val exp : Long ? = null ,
105
93
@JsonProperty(" iat" )
106
- val iat : String ? = null ,
94
+ val iat : Long ? = null ,
107
95
@JsonProperty(" nbf" )
108
- val nbf : String ? = null ,
96
+ val nbf : Long ? = null ,
109
97
@JsonProperty(" sub" )
110
98
val sub : String? = null ,
111
99
@JsonProperty(" aud" )
0 commit comments