diff --git a/token-client-core/src/main/kotlin/no/nav/security/token/support/client/core/auth/ClientAssertion.kt b/token-client-core/src/main/kotlin/no/nav/security/token/support/client/core/auth/ClientAssertion.kt index a8462931..c035311a 100644 --- a/token-client-core/src/main/kotlin/no/nav/security/token/support/client/core/auth/ClientAssertion.kt +++ b/token-client-core/src/main/kotlin/no/nav/security/token/support/client/core/auth/ClientAssertion.kt @@ -14,7 +14,7 @@ import java.net.URI import java.time.Instant.now import java.util.* import no.nav.security.token.support.client.core.ClientAuthenticationProperties -import kotlin.DeprecationLevel.WARNING +import kotlin.DeprecationLevel.ERROR class ClientAssertion(private val tokenEndpointUrl : URI, private val clientId : String, private val rsaKey : RSAKey, private val expiryInSeconds : Int) { constructor(tokenEndpointUrl: URI, auth : ClientAuthenticationProperties) : this(tokenEndpointUrl, auth.clientId, auth.clientRsaKey!!, EXPIRY_IN_SECONDS) @@ -32,7 +32,7 @@ class ClientAssertion(private val tokenEndpointUrl : URI, private val clientId : .build()).serialize() } - @Deprecated("Use com.nimbusds.oauth2.sdk.auth.JWTAuthentication instead", ReplaceWith("JWTAuthentication.CLIENT_ASSERTION_TYPE"), WARNING) + @Deprecated("Use com.nimbusds.oauth2.sdk.auth.JWTAuthentication instead", ReplaceWith("JWTAuthentication.CLIENT_ASSERTION_TYPE"),ERROR) fun assertionType() = CLIENT_ASSERTION_TYPE private fun createSignedJWT(rsaJwk : RSAKey, claimsSet : JWTClaimsSet) = diff --git a/token-client-spring/src/main/kotlin/no/nav/security/token/support/client/spring/oauth2/OAuth2ClientRequestInterceptor.kt b/token-client-spring/src/main/kotlin/no/nav/security/token/support/client/spring/oauth2/OAuth2ClientRequestInterceptor.kt index 2351d364..38ffe03c 100644 --- a/token-client-spring/src/main/kotlin/no/nav/security/token/support/client/spring/oauth2/OAuth2ClientRequestInterceptor.kt +++ b/token-client-spring/src/main/kotlin/no/nav/security/token/support/client/spring/oauth2/OAuth2ClientRequestInterceptor.kt @@ -2,6 +2,7 @@ package no.nav.security.token.support.client.spring.oauth2 import no.nav.security.token.support.client.core.oauth2.OAuth2AccessTokenService import no.nav.security.token.support.client.spring.ClientConfigurationProperties +import org.slf4j.LoggerFactory import org.springframework.http.HttpRequest import org.springframework.http.client.ClientHttpRequestExecution import org.springframework.http.client.ClientHttpRequestInterceptor @@ -22,13 +23,21 @@ import org.springframework.http.client.ClientHttpResponse class OAuth2ClientRequestInterceptor(private val properties: ClientConfigurationProperties, private val service: OAuth2AccessTokenService, private val matcher: ClientConfigurationPropertiesMatcher = object : ClientConfigurationPropertiesMatcher {}) : ClientHttpRequestInterceptor { + + private val log = LoggerFactory.getLogger(OAuth2ClientRequestInterceptor::class.java) + + override fun intercept(req: HttpRequest, body: ByteArray, execution: ClientHttpRequestExecution): ClientHttpResponse { + log.trace("Intercepting request to {}", req.uri) matcher.findProperties(properties, req.uri)?.let { - service.getAccessToken(it).access_token?.let { token -> req.headers.setBearerAuth(token) } + log.trace("Found properties {} for uri {}", it, req.uri) + service.getAccessToken(it).access_token?.let { + token -> req.headers.setBearerAuth(token) + log.trace("Finished setting Authorization header with accesstoken OK") + } } return execution.execute(req, body) } - override fun toString() = "${javaClass.simpleName} [properties=$properties, service=$service, matcher=$matcher]" } \ No newline at end of file diff --git a/token-validation-core/src/main/kotlin/no/nav/security/token/support/core/validation/JwtTokenAnnotationHandler.kt b/token-validation-core/src/main/kotlin/no/nav/security/token/support/core/validation/JwtTokenAnnotationHandler.kt index 9cf8213d..18b12a14 100755 --- a/token-validation-core/src/main/kotlin/no/nav/security/token/support/core/validation/JwtTokenAnnotationHandler.kt +++ b/token-validation-core/src/main/kotlin/no/nav/security/token/support/core/validation/JwtTokenAnnotationHandler.kt @@ -57,9 +57,10 @@ open class JwtTokenAnnotationHandler(private val tokenValidationContextHolder : } private fun handleRequiredIssuers(a: RequiredIssuers): Boolean { - val hasToken = a.value.any { sub -> - val jwtToken = getJwtToken(sub.issuer, tokenValidationContextHolder) - jwtToken.isPresent && handleProtectedWithClaimsAnnotation(sub, jwtToken.get()) + val hasToken = a.value.any { + getJwtToken(it.issuer, tokenValidationContextHolder).run { + isPresent && handleProtectedWithClaimsAnnotation(it, get()) + } } return when { hasToken -> true diff --git a/token-validation-filter/pom.xml b/token-validation-filter/pom.xml index 75d35945..c5ef5b22 100644 --- a/token-validation-filter/pom.xml +++ b/token-validation-filter/pom.xml @@ -27,10 +27,6 @@ logback-classic test - - org.jetbrains.kotlin - kotlin-stdlib - ${project.basedir}/src/main/kotlin diff --git a/token-validation-jaxrs/src/test/resources/application-protected.yaml b/token-validation-jaxrs/src/test/resources/application-protected.yaml index 5ba9732b..224dbce9 100644 --- a/token-validation-jaxrs/src/test/resources/application-protected.yaml +++ b/token-validation-jaxrs/src/test/resources/application-protected.yaml @@ -2,6 +2,6 @@ spring.autoconfigure.exclude: org.springframework.boot.autoconfigure.web.servlet no.nav.security.jwt: issuers: protected issuer.protected: - discoveryurl: http://metadata + discovery-url: http://metadata accepted_audience: aud-localhost debug: false \ No newline at end of file diff --git a/token-validation-ktor-v2/src/test/kotlin/no/nav/security/token/support/v2/ApplicationTest.kt b/token-validation-ktor-v2/src/test/kotlin/no/nav/security/token/support/v2/ApplicationTest.kt index b1ca6bb5..e8ad2b8a 100644 --- a/token-validation-ktor-v2/src/test/kotlin/no/nav/security/token/support/v2/ApplicationTest.kt +++ b/token-validation-ktor-v2/src/test/kotlin/no/nav/security/token/support/v2/ApplicationTest.kt @@ -278,8 +278,7 @@ class ApplicationTest { put("no.nav.security.jwt.issuers.0.issuer_name", acceptedIssuer) put( "no.nav.security.jwt.issuers.0.discoveryurl", - server.wellKnownUrl(ISSUER_ID).toString() - )//server.baseUrl() + "/.well-known/openid-configuration") + server.wellKnownUrl(ISSUER_ID).toString()) put("no.nav.security.jwt.issuers.0.accepted_audience", acceptedAudience) } }