@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat
44import com.fasterxml.jackson.annotation.JsonInclude
55import com.fasterxml.jackson.annotation.JsonProperty
66import com.nimbusds.jwt.JWTClaimsSet
7+ import com.nimbusds.jwt.util.DateUtils
78import com.nimbusds.oauth2.sdk.OAuth2Error
89import mu.KotlinLogging
910import no.nav.security.mock.oauth2.OAuth2Exception
@@ -14,6 +15,7 @@ import no.nav.security.mock.oauth2.http.Route
1415import no.nav.security.mock.oauth2.http.json
1516import no.nav.security.mock.oauth2.token.OAuth2TokenProvider
1617import okhttp3.Headers
18+ import java.util.Date
1719
1820private val log = KotlinLogging .logger { }
1921
@@ -29,18 +31,18 @@ internal fun Route.Builder.introspect(tokenProvider: OAuth2TokenProvider) =
2931 request.verifyToken(tokenProvider)?.let {
3032 json(
3133 IntrospectResponse (
32- true ,
33- it.getStringClaim(" scope" ),
34- it.getStringClaim(" client_id" ),
35- it.getStringClaim(" username" ),
36- it.getStringClaim(" token_type" ) ? : " Bearer" ,
37- it.expirationTime?.time?.div( 1000 ),
38- it.issueTime?.time?.div( 1000 ),
39- it.notBeforeTime?.time?.div( 1000 ),
40- it.subject,
41- it.audience,
42- it.issuer,
43- it.jwtid,
34+ active = true ,
35+ scope = it.getStringClaim(" scope" ),
36+ clientId = it.getStringClaim(" client_id" ),
37+ username = it.getStringClaim(" username" ),
38+ tokenType = it.getStringClaim(" token_type" ) ? : " Bearer" ,
39+ exp = it.expirationTime.epochSeconds( ),
40+ iat = it.issueTime.epochSeconds( ),
41+ nbf = it.notBeforeTime.epochSeconds( ),
42+ sub = it.subject,
43+ aud = it.audience,
44+ iss = it.issuer,
45+ jti = it.jwtid,
4446 ),
4547 )
4648 } ? : json(IntrospectResponse (false ))
@@ -70,6 +72,8 @@ private fun String.auth(method: String): String? =
7072 .takeIf { it.size == 2 }
7173 ?.last()
7274
75+ private fun Date?.epochSeconds (): Long? = this ?.let (DateUtils ::toSecondsSinceEpoch)
76+
7377@JsonInclude(JsonInclude .Include .NON_NULL )
7478data class IntrospectResponse (
7579 @JsonProperty(" active" )
0 commit comments