core/src/main/java/org/springframework/security/authentication/dao/AbstractUserDetailsAuthenticationProvider.java
protected Authentication createSuccessAuthentication(Object principal,
			Authentication authentication, UserDetails user) {
		// Ensure we return the original credentials the user supplied,
		// so subsequent attempts are successful even with encoded passwords.
		// Also ensure we return the original getDetails(), so that future
		// authentication events after cache expiry contain the details
		UsernamePasswordAuthenticationToken result = new UsernamePasswordAuthenticationToken(
				principal, authentication.getCredentials(),
				authoritiesMapper.mapAuthorities(user.getAuthorities()));
		result.setDetails(authentication.getDetails());

		return result;
	}
protected Authentication createSuccessAuthentication(Object principal,
			Authentication authentication, UserDetails user) {
		// Ensure we return the original credentials the user supplied,
		// so subsequent attempts are successful even with encoded passwords.
		// Also ensure we return the original getDetails(), so that future
		// authentication events after cache expiry contain the details
		UsernamePasswordAuthenticationToken result = new UsernamePasswordAuthenticationToken(
				principal, authentication.getCredentials(),
				authoritiesMapper.mapAuthorities(user.getAuthorities()));
		result.setDetails(authentication.getDetails());

		return result;
	}
protected Authentication createSuccessAuthentication ( Object principal , Authentication authentication , UserDetails user ) { // Ensure we return the original credentials the user supplied, // so subsequent attempts are successful even with encoded passwords. // Also ensure we return the original getDetails(), so that future // authentication events after cache expiry contain the details UsernamePasswordAuthenticationToken result = new UsernamePasswordAuthenticationToken ( principal , authentication . getCredentials ( ) , authoritiesMapper . mapAuthorities ( user . getAuthorities ( ) ) ) ; result . setDetails ( authentication . getDetails ( ) ) ; return result ; }
Creates a successful {@link Authentication} object.
<p>
Protected so subclasses can override.
</p>
<p>
Subclasses will usually store the original credentials the user supplied (not
salted or encoded passwords) in the returned <code>Authentication</code> object.
</p>

@param principal that should be the principal in the returned object (defined by
the {@link #isForcePrincipalAsString()} method)
@param authentication that was presented to the provider for validation
@param user that was loaded by the implementation

@return the successful authentication token
Creates a successful { @link Authentication } object . <p > Protected so subclasses can override . < / p > <p > Subclasses will usually store the original credentials the user supplied ( not salted or encoded passwords ) in the returned <code > Authentication< / code > object . < / p >