Temporarily fix integration tests

Issue gh-17880
This commit is contained in:
Joe Grandja 2025-09-12 14:18:56 -04:00
parent 7ef25cc101
commit 35f41f87d1
20 changed files with 95 additions and 38 deletions

View File

@ -114,6 +114,7 @@ import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.AuthenticationConverter;
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
import org.springframework.security.web.authentication.WebAuthenticationDetails;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
@ -363,6 +364,7 @@ public class OAuth2ClientCredentialsGrantTests {
Instant.now(), Instant.now().plus(Duration.ofHours(1)));
OAuth2AccessTokenAuthenticationToken accessTokenAuthentication = new OAuth2AccessTokenAuthenticationToken(
registeredClient, clientPrincipal, accessToken);
accessTokenAuthentication.setDetails(new WebAuthenticationDetails("remoteAddress", "sessionId"));
given(authenticationProvider.supports(eq(OAuth2ClientCredentialsAuthenticationToken.class))).willReturn(true);
given(authenticationProvider.authenticate(any())).willReturn(accessTokenAuthentication);

View File

@ -624,7 +624,10 @@ public class OAuth2RefreshTokenGrantTests {
throwInvalidClient("authentication_method");
}
return new PublicClientRefreshTokenAuthenticationToken(registeredClient);
PublicClientRefreshTokenAuthenticationToken publicClientRefreshTokenAuthenticationResult = new PublicClientRefreshTokenAuthenticationToken(
registeredClient);
publicClientRefreshTokenAuthenticationResult.setDetails(publicClientAuthentication.getDetails());
return publicClientRefreshTokenAuthenticationResult;
}
@Override

View File

@ -155,8 +155,11 @@ public final class ClientSecretAuthenticationProvider implements AuthenticationP
this.logger.trace("Authenticated client secret");
}
return new OAuth2ClientAuthenticationToken(registeredClient,
clientAuthentication.getClientAuthenticationMethod(), clientAuthentication.getCredentials());
OAuth2ClientAuthenticationToken clientAuthenticationResult = new OAuth2ClientAuthenticationToken(
registeredClient, clientAuthentication.getClientAuthenticationMethod(),
clientAuthentication.getCredentials());
clientAuthenticationResult.setDetails(clientAuthentication.getDetails());
return clientAuthenticationResult;
}
@Override

View File

@ -138,7 +138,10 @@ public final class JwtClientAssertionAuthenticationProvider implements Authentic
this.logger.trace("Authenticated client assertion");
}
return new OAuth2ClientAuthenticationToken(registeredClient, clientAuthenticationMethod, jwtAssertion);
OAuth2ClientAuthenticationToken clientAuthenticationResult = new OAuth2ClientAuthenticationToken(
registeredClient, clientAuthenticationMethod, jwtAssertion);
clientAuthenticationResult.setDetails(clientAuthentication.getDetails());
return clientAuthenticationResult;
}
@Override

View File

@ -312,8 +312,10 @@ public final class OAuth2AuthorizationCodeAuthenticationProvider implements Auth
this.logger.trace("Authenticated token request");
}
return new OAuth2AccessTokenAuthenticationToken(registeredClient, clientPrincipal, accessToken, refreshToken,
additionalParameters);
OAuth2AccessTokenAuthenticationToken accessTokenAuthenticationResult = new OAuth2AccessTokenAuthenticationToken(
registeredClient, clientPrincipal, accessToken, refreshToken, additionalParameters);
accessTokenAuthenticationResult.setDetails(authorizationCodeAuthentication.getDetails());
return accessTokenAuthenticationResult;
}
@Override

View File

@ -167,11 +167,13 @@ public final class OAuth2AuthorizationCodeRequestAuthenticationProvider implemen
authorizationCodeRequestAuthentication, null);
}
Object authenticationDetails = authorizationCodeRequestAuthentication.getDetails();
authorizationCodeRequestAuthentication = new OAuth2AuthorizationCodeRequestAuthenticationToken(
authorizationCodeRequestAuthentication.getAuthorizationUri(), authorizationRequest.getClientId(),
(Authentication) authorizationCodeRequestAuthentication.getPrincipal(),
authorizationRequest.getRedirectUri(), authorizationRequest.getState(),
authorizationRequest.getScopes(), authorizationRequest.getAdditionalParameters());
authorizationCodeRequestAuthentication.setDetails(authenticationDetails);
}
RegisteredClient registeredClient = this.registeredClientRepository
@ -283,8 +285,11 @@ public final class OAuth2AuthorizationCodeRequestAuthenticationProvider implemen
Set<String> currentAuthorizedScopes = (currentAuthorizationConsent != null)
? currentAuthorizationConsent.getScopes() : null;
return new OAuth2AuthorizationConsentAuthenticationToken(authorizationRequest.getAuthorizationUri(),
registeredClient.getClientId(), principal, state, currentAuthorizedScopes, null);
OAuth2AuthorizationConsentAuthenticationToken authorizationConsentAuthentication = new OAuth2AuthorizationConsentAuthenticationToken(
authorizationRequest.getAuthorizationUri(), registeredClient.getClientId(), principal, state,
currentAuthorizedScopes, null);
authorizationConsentAuthentication.setDetails(authorizationCodeRequestAuthentication.getDetails());
return authorizationConsentAuthentication;
}
OAuth2TokenContext tokenContext = createAuthorizationCodeTokenContext(authorizationCodeRequestAuthentication,
@ -327,9 +332,11 @@ public final class OAuth2AuthorizationCodeRequestAuthenticationProvider implemen
this.logger.trace("Authenticated authorization code request");
}
return new OAuth2AuthorizationCodeRequestAuthenticationToken(authorizationRequest.getAuthorizationUri(),
registeredClient.getClientId(), principal, authorizationCode, redirectUri,
authorizationRequest.getState(), authorizationRequest.getScopes());
OAuth2AuthorizationCodeRequestAuthenticationToken authorizationCodeRequestAuthenticationResult = new OAuth2AuthorizationCodeRequestAuthenticationToken(
authorizationRequest.getAuthorizationUri(), registeredClient.getClientId(), principal,
authorizationCode, redirectUri, authorizationRequest.getState(), authorizationRequest.getScopes());
authorizationCodeRequestAuthenticationResult.setDetails(authorizationCodeRequestAuthentication.getDetails());
return authorizationCodeRequestAuthenticationResult;
}
@Override
@ -481,6 +488,7 @@ public final class OAuth2AuthorizationCodeRequestAuthenticationProvider implemen
(Authentication) authorizationCodeRequestAuthentication.getPrincipal(), redirectUri,
authorizationCodeRequestAuthentication.getState(), authorizationCodeRequestAuthentication.getScopes(),
authorizationCodeRequestAuthentication.getAdditionalParameters());
authorizationCodeRequestAuthenticationResult.setDetails(authorizationCodeRequestAuthentication.getDetails());
throw new OAuth2AuthorizationCodeRequestAuthenticationException(error,
authorizationCodeRequestAuthenticationResult);

View File

@ -260,9 +260,11 @@ public final class OAuth2AuthorizationConsentAuthenticationProvider implements A
this.logger.trace("Authenticated authorization consent request");
}
return new OAuth2AuthorizationCodeRequestAuthenticationToken(authorizationRequest.getAuthorizationUri(),
registeredClient.getClientId(), principal, authorizationCode, redirectUri,
authorizationRequest.getState(), authorizedScopes);
OAuth2AuthorizationCodeRequestAuthenticationToken authorizationCodeRequestAuthenticationResult = new OAuth2AuthorizationCodeRequestAuthenticationToken(
authorizationRequest.getAuthorizationUri(), registeredClient.getClientId(), principal,
authorizationCode, redirectUri, authorizationRequest.getState(), authorizedScopes);
authorizationCodeRequestAuthenticationResult.setDetails(authorizationConsentAuthentication.getDetails());
return authorizationCodeRequestAuthenticationResult;
}
@Override
@ -362,6 +364,7 @@ public final class OAuth2AuthorizationConsentAuthenticationProvider implements A
authorizationConsentAuthentication.getClientId(),
(Authentication) authorizationConsentAuthentication.getPrincipal(), redirectUri, state, requestedScopes,
null);
authorizationCodeRequestAuthenticationResult.setDetails(authorizationConsentAuthentication.getDetails());
throw new OAuth2AuthorizationCodeRequestAuthenticationException(error,
authorizationCodeRequestAuthenticationResult);

View File

@ -170,7 +170,10 @@ public final class OAuth2ClientCredentialsAuthenticationProvider implements Auth
this.logger.trace("Authenticated token request");
}
return new OAuth2AccessTokenAuthenticationToken(registeredClient, clientPrincipal, accessToken);
OAuth2AccessTokenAuthenticationToken accessTokenAuthenticationResult = new OAuth2AccessTokenAuthenticationToken(
registeredClient, clientPrincipal, accessToken);
accessTokenAuthenticationResult.setDetails(clientCredentialsAuthentication.getDetails());
return accessTokenAuthenticationResult;
}
@Override

View File

@ -181,8 +181,11 @@ public final class OAuth2DeviceAuthorizationRequestAuthenticationProvider implem
this.logger.trace("Authenticated device authorization request");
}
return new OAuth2DeviceAuthorizationRequestAuthenticationToken(clientPrincipal, requestedScopes, deviceCode,
userCode);
OAuth2DeviceAuthorizationRequestAuthenticationToken deviceAuthorizationRequestAuthenticationResult = new OAuth2DeviceAuthorizationRequestAuthenticationToken(
clientPrincipal, requestedScopes, deviceCode, userCode);
deviceAuthorizationRequestAuthenticationResult
.setDetails(deviceAuthorizationRequestAuthentication.getDetails());
return deviceAuthorizationRequestAuthenticationResult;
}
@Override

View File

@ -260,7 +260,10 @@ public final class OAuth2DeviceCodeAuthenticationProvider implements Authenticat
this.logger.trace("Authenticated device token request");
}
return new OAuth2AccessTokenAuthenticationToken(registeredClient, clientPrincipal, accessToken, refreshToken);
OAuth2AccessTokenAuthenticationToken accessTokenAuthenticationResult = new OAuth2AccessTokenAuthenticationToken(
registeredClient, clientPrincipal, accessToken, refreshToken);
accessTokenAuthenticationResult.setDetails(deviceCodeAuthentication.getDetails());
return accessTokenAuthenticationResult;
}
@Override

View File

@ -171,9 +171,11 @@ public final class OAuth2DeviceVerificationAuthenticationProvider implements Aut
.getAuthorizationServerSettings();
String deviceVerificationUri = authorizationServerSettings.getDeviceVerificationEndpoint();
return new OAuth2DeviceAuthorizationConsentAuthenticationToken(deviceVerificationUri,
registeredClient.getClientId(), principal, deviceVerificationAuthentication.getUserCode(), state,
requestedScopes, currentAuthorizedScopes);
OAuth2DeviceAuthorizationConsentAuthenticationToken deviceAuthorizationConsentAuthenticationResult = new OAuth2DeviceAuthorizationConsentAuthenticationToken(
deviceVerificationUri, registeredClient.getClientId(), principal,
deviceVerificationAuthentication.getUserCode(), state, requestedScopes, currentAuthorizedScopes);
deviceAuthorizationConsentAuthenticationResult.setDetails(deviceVerificationAuthentication.getDetails());
return deviceAuthorizationConsentAuthenticationResult;
}
// @formatter:off

View File

@ -138,10 +138,14 @@ public final class OAuth2PushedAuthorizationRequestAuthenticationProvider implem
this.logger.trace("Authenticated pushed authorization request");
}
return new OAuth2PushedAuthorizationRequestAuthenticationToken(authorizationRequest.getAuthorizationUri(),
authorizationRequest.getClientId(), clientPrincipal, pushedAuthorizationRequestUri.getRequestUri(),
pushedAuthorizationRequestUri.getExpiresAt(), authorizationRequest.getRedirectUri(),
authorizationRequest.getState(), authorizationRequest.getScopes());
OAuth2PushedAuthorizationRequestAuthenticationToken pushedAuthorizationRequestAuthenticationResult = new OAuth2PushedAuthorizationRequestAuthenticationToken(
authorizationRequest.getAuthorizationUri(), authorizationRequest.getClientId(), clientPrincipal,
pushedAuthorizationRequestUri.getRequestUri(), pushedAuthorizationRequestUri.getExpiresAt(),
authorizationRequest.getRedirectUri(), authorizationRequest.getState(),
authorizationRequest.getScopes());
pushedAuthorizationRequestAuthenticationResult
.setDetails(pushedAuthorizationRequestAuthentication.getDetails());
return pushedAuthorizationRequestAuthenticationResult;
}
@Override

View File

@ -283,8 +283,10 @@ public final class OAuth2RefreshTokenAuthenticationProvider implements Authentic
this.logger.trace("Authenticated token request");
}
return new OAuth2AccessTokenAuthenticationToken(registeredClient, clientPrincipal, accessToken,
currentRefreshToken, additionalParameters);
OAuth2AccessTokenAuthenticationToken accessTokenAuthenticationResult = new OAuth2AccessTokenAuthenticationToken(
registeredClient, clientPrincipal, accessToken, currentRefreshToken, additionalParameters);
accessTokenAuthenticationResult.setDetails(refreshTokenAuthentication.getDetails());
return accessTokenAuthenticationResult;
}
@Override

View File

@ -268,8 +268,10 @@ public final class OAuth2TokenExchangeAuthenticationProvider implements Authenti
this.logger.trace("Authenticated token request");
}
return new OAuth2AccessTokenAuthenticationToken(registeredClient, clientPrincipal, accessToken, null,
additionalParameters);
OAuth2AccessTokenAuthenticationToken accessTokenAuthenticationResult = new OAuth2AccessTokenAuthenticationToken(
registeredClient, clientPrincipal, accessToken, null, additionalParameters);
accessTokenAuthenticationResult.setDetails(tokenExchangeAuthentication.getDetails());
return accessTokenAuthenticationResult;
}
private static boolean isValidTokenType(String tokenType, OAuth2Authorization.Token<OAuth2Token> token) {

View File

@ -118,8 +118,10 @@ public final class OAuth2TokenIntrospectionAuthenticationProvider implements Aut
this.logger.trace("Authenticated token introspection request");
}
return new OAuth2TokenIntrospectionAuthenticationToken(authorizedToken.getToken().getTokenValue(),
clientPrincipal, tokenClaims);
OAuth2TokenIntrospectionAuthenticationToken tokenIntrospectionAuthenticationResult = new OAuth2TokenIntrospectionAuthenticationToken(
authorizedToken.getToken().getTokenValue(), clientPrincipal, tokenClaims);
tokenIntrospectionAuthenticationResult.setDetails(tokenIntrospectionAuthentication.getDetails());
return tokenIntrospectionAuthenticationResult;
}
@Override

View File

@ -89,7 +89,10 @@ public final class OAuth2TokenRevocationAuthenticationProvider implements Authen
this.logger.trace("Authenticated token revocation request");
}
return new OAuth2TokenRevocationAuthenticationToken(token.getToken(), clientPrincipal);
OAuth2TokenRevocationAuthenticationToken tokenRevocationAuthenticationResult = new OAuth2TokenRevocationAuthenticationToken(
token.getToken(), clientPrincipal);
tokenRevocationAuthenticationResult.setDetails(tokenRevocationAuthentication.getDetails());
return tokenRevocationAuthenticationResult;
}
@Override

View File

@ -103,8 +103,10 @@ public final class PublicClientAuthenticationProvider implements AuthenticationP
this.logger.trace("Authenticated public client");
}
return new OAuth2ClientAuthenticationToken(registeredClient,
clientAuthentication.getClientAuthenticationMethod(), null);
OAuth2ClientAuthenticationToken clientAuthenticationResult = new OAuth2ClientAuthenticationToken(
registeredClient, clientAuthentication.getClientAuthenticationMethod(), null);
clientAuthenticationResult.setDetails(clientAuthentication.getDetails());
return clientAuthenticationResult;
}
@Override

View File

@ -125,8 +125,11 @@ public final class X509ClientCertificateAuthenticationProvider implements Authen
this.logger.trace("Authenticated client X509Certificate");
}
return new OAuth2ClientAuthenticationToken(registeredClient,
clientAuthentication.getClientAuthenticationMethod(), clientAuthentication.getCredentials());
OAuth2ClientAuthenticationToken clientAuthenticationResult = new OAuth2ClientAuthenticationToken(
registeredClient, clientAuthentication.getClientAuthenticationMethod(),
clientAuthentication.getCredentials());
clientAuthenticationResult.setDetails(clientAuthentication.getDetails());
return clientAuthenticationResult;
}
@Override

View File

@ -169,8 +169,10 @@ public final class OidcClientConfigurationAuthenticationProvider implements Auth
this.logger.trace("Authenticated client configuration request");
}
return new OidcClientRegistrationAuthenticationToken(
OidcClientRegistrationAuthenticationToken clientRegistrationAuthenticationResult = new OidcClientRegistrationAuthenticationToken(
(Authentication) clientRegistrationAuthentication.getPrincipal(), clientRegistration);
clientRegistrationAuthenticationResult.setDetails(clientRegistrationAuthentication.getDetails());
return clientRegistrationAuthenticationResult;
}
@SuppressWarnings("unchecked")

View File

@ -279,8 +279,10 @@ public final class OidcClientRegistrationAuthenticationProvider implements Authe
this.logger.trace("Authenticated client registration request");
}
return new OidcClientRegistrationAuthenticationToken(
OidcClientRegistrationAuthenticationToken clientRegistrationAuthenticationResult = new OidcClientRegistrationAuthenticationToken(
(Authentication) clientRegistrationAuthentication.getPrincipal(), clientRegistration);
clientRegistrationAuthenticationResult.setDetails(clientRegistrationAuthentication.getDetails());
return clientRegistrationAuthenticationResult;
}
private OAuth2Authorization registerAccessToken(RegisteredClient registeredClient) {