Browse Source

Fix Failing Test

Closes gh-14467
Josh Cummings 1 year ago
parent
commit
27ebeefb14

+ 8 - 11
config/src/main/java/org/springframework/security/config/web/server/OidcBackChannelLogoutReactiveAuthenticationManager.java

@@ -85,17 +85,14 @@ final class OidcBackChannelLogoutReactiveAuthenticationManager implements Reacti
 
 	private Mono<Jwt> decode(ClientRegistration registration, String token) {
 		ReactiveJwtDecoder logoutTokenDecoder = this.logoutTokenDecoderFactory.createDecoder(registration);
-		try {
-			return logoutTokenDecoder.decode(token);
-		}
-		catch (BadJwtException failed) {
-			OAuth2Error error = new OAuth2Error(OAuth2ErrorCodes.INVALID_REQUEST, failed.getMessage(),
-					"https://openid.net/specs/openid-connect-backchannel-1_0.html#Validation");
-			return Mono.error(new OAuth2AuthenticationException(error, failed));
-		}
-		catch (Exception failed) {
-			return Mono.error(new AuthenticationServiceException(failed.getMessage(), failed));
-		}
+		return logoutTokenDecoder.decode(token).onErrorResume(Exception.class, (ex) -> {
+			if (ex instanceof BadJwtException) {
+				OAuth2Error error = new OAuth2Error(OAuth2ErrorCodes.INVALID_REQUEST, ex.getMessage(),
+						"https://openid.net/specs/openid-connect-backchannel-1_0.html#Validation");
+				return Mono.error(new OAuth2AuthenticationException(error, ex));
+			}
+			return Mono.error(new AuthenticationServiceException(ex.getMessage(), ex));
+		});
 	}
 
 	/**