瀏覽代碼

Temporarily fix integration tests

Issue gh-17880
Joe Grandja 2 周之前
父節點
當前提交
35f41f87d1
共有 20 個文件被更改,包括 95 次插入38 次删除
  1. 2 0
      config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/authorization/OAuth2ClientCredentialsGrantTests.java
  2. 4 1
      config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/authorization/OAuth2RefreshTokenGrantTests.java
  3. 5 2
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/ClientSecretAuthenticationProvider.java
  4. 4 1
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/JwtClientAssertionAuthenticationProvider.java
  5. 4 2
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeAuthenticationProvider.java
  6. 13 5
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeRequestAuthenticationProvider.java
  7. 6 3
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationConsentAuthenticationProvider.java
  8. 4 1
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2ClientCredentialsAuthenticationProvider.java
  9. 5 2
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2DeviceAuthorizationRequestAuthenticationProvider.java
  10. 4 1
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2DeviceCodeAuthenticationProvider.java
  11. 5 3
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2DeviceVerificationAuthenticationProvider.java
  12. 8 4
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2PushedAuthorizationRequestAuthenticationProvider.java
  13. 4 2
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2RefreshTokenAuthenticationProvider.java
  14. 4 2
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2TokenExchangeAuthenticationProvider.java
  15. 4 2
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2TokenIntrospectionAuthenticationProvider.java
  16. 4 1
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2TokenRevocationAuthenticationProvider.java
  17. 4 2
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/PublicClientAuthenticationProvider.java
  18. 5 2
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/X509ClientCertificateAuthenticationProvider.java
  19. 3 1
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcClientConfigurationAuthenticationProvider.java
  20. 3 1
      oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcClientRegistrationAuthenticationProvider.java

+ 2 - 0
config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/authorization/OAuth2ClientCredentialsGrantTests.java

@@ -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);
 

+ 4 - 1
config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/authorization/OAuth2RefreshTokenGrantTests.java

@@ -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

+ 5 - 2
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/ClientSecretAuthenticationProvider.java

@@ -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

+ 4 - 1
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/JwtClientAssertionAuthenticationProvider.java

@@ -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

+ 4 - 2
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeAuthenticationProvider.java

@@ -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

+ 13 - 5
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationCodeRequestAuthenticationProvider.java

@@ -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);

+ 6 - 3
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationConsentAuthenticationProvider.java

@@ -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);

+ 4 - 1
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2ClientCredentialsAuthenticationProvider.java

@@ -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

+ 5 - 2
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2DeviceAuthorizationRequestAuthenticationProvider.java

@@ -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

+ 4 - 1
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2DeviceCodeAuthenticationProvider.java

@@ -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

+ 5 - 3
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2DeviceVerificationAuthenticationProvider.java

@@ -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

+ 8 - 4
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2PushedAuthorizationRequestAuthenticationProvider.java

@@ -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

+ 4 - 2
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2RefreshTokenAuthenticationProvider.java

@@ -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

+ 4 - 2
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2TokenExchangeAuthenticationProvider.java

@@ -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) {

+ 4 - 2
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2TokenIntrospectionAuthenticationProvider.java

@@ -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

+ 4 - 1
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2TokenRevocationAuthenticationProvider.java

@@ -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

+ 4 - 2
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/PublicClientAuthenticationProvider.java

@@ -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

+ 5 - 2
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/X509ClientCertificateAuthenticationProvider.java

@@ -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

+ 3 - 1
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcClientConfigurationAuthenticationProvider.java

@@ -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")

+ 3 - 1
oauth2/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcClientRegistrationAuthenticationProvider.java

@@ -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) {