@ -15,16 +15,6 @@
@@ -15,16 +15,6 @@
* /
package org.springframework.security.oauth2.jwt ;
import java.security.interfaces.RSAPublicKey ;
import java.util.Collections ;
import java.util.HashSet ;
import java.util.LinkedHashMap ;
import java.util.Map ;
import java.util.Set ;
import java.util.function.Consumer ;
import java.util.function.Function ;
import javax.crypto.SecretKey ;
import com.nimbusds.jose.Header ;
import com.nimbusds.jose.JOSEException ;
import com.nimbusds.jose.JWSAlgorithm ;
@ -47,17 +37,29 @@ import com.nimbusds.jwt.SignedJWT;
@@ -47,17 +37,29 @@ import com.nimbusds.jwt.SignedJWT;
import com.nimbusds.jwt.proc.ConfigurableJWTProcessor ;
import com.nimbusds.jwt.proc.DefaultJWTProcessor ;
import com.nimbusds.jwt.proc.JWTProcessor ;
import reactor.core.publisher.Flux ;
import reactor.core.publisher.Mono ;
import org.springframework.core.convert.converter.Converter ;
import org.springframework.security.oauth2.core.OAuth2Error ;
import org.springframework.security.oauth2.core.OAuth2TokenValidator ;
import org.springframework.security.oauth2.core.OAuth2TokenValidatorResult ;
import org.springframework.security.oauth2.jose.jws.JwsAlgorithm ;
import org.springframework.security.oauth2.jose.jws.MacAlgorithm ;
import org.springframework.security.oauth2.jose.jws.SignatureAlgorithm ;
import org.springframework.util.Assert ;
import org.springframework.util.StringUtils ;
import org.springframework.web.reactive.function.client.WebClient ;
import reactor.core.publisher.Flux ;
import reactor.core.publisher.Mono ;
import javax.crypto.SecretKey ;
import java.security.interfaces.RSAPublicKey ;
import java.util.Collection ;
import java.util.Collections ;
import java.util.HashSet ;
import java.util.LinkedHashMap ;
import java.util.Map ;
import java.util.Set ;
import java.util.function.Consumer ;
import java.util.function.Function ;
/ * *
* An implementation of a { @link ReactiveJwtDecoder } that & quot ; decodes & quot ; a
@ -178,10 +180,16 @@ public final class NimbusReactiveJwtDecoder implements ReactiveJwtDecoder {
@@ -178,10 +180,16 @@ public final class NimbusReactiveJwtDecoder implements ReactiveJwtDecoder {
private Jwt validateJwt ( Jwt jwt ) {
OAuth2TokenValidatorResult result = this . jwtValidator . validate ( jwt ) ;
if ( result . hasErrors ( ) ) {
String message = result . getErrors ( ) . iterator ( ) . next ( ) . getDescription ( ) ;
throw new JwtValidationException ( message , result . getErrors ( ) ) ;
if ( result . hasErrors ( ) ) {
Collection < OAuth2Error > errors = result . getErrors ( ) ;
String validationErrorString = "Unable to validate Jwt" ;
for ( OAuth2Error oAuth2Error : errors ) {
if ( ! StringUtils . isEmpty ( oAuth2Error . getDescription ( ) ) ) {
validationErrorString = oAuth2Error . getDescription ( ) ;
break ;
}
}
throw new JwtValidationException ( validationErrorString , errors ) ;
}
return jwt ;