core/src/main/java/org/springframework/security/core/userdetails/jdbc/JdbcDaoImpl.java
protected UserDetails createUserDetails(String username,
			UserDetails userFromUserQuery, List<GrantedAuthority> combinedAuthorities) {
		String returnUsername = userFromUserQuery.getUsername();

		if (!this.usernameBasedPrimaryKey) {
			returnUsername = username;
		}

		return new User(returnUsername, userFromUserQuery.getPassword(),
				userFromUserQuery.isEnabled(), userFromUserQuery.isAccountNonExpired(),
				userFromUserQuery.isCredentialsNonExpired(), userFromUserQuery.isAccountNonLocked(), combinedAuthorities);
	}
protected UserDetails createUserDetails(String username,
			UserDetails userFromUserQuery, List<GrantedAuthority> combinedAuthorities) {
		String returnUsername = userFromUserQuery.getUsername();

		if (!this.usernameBasedPrimaryKey) {
			returnUsername = username;
		}

		return new User(returnUsername, userFromUserQuery.getPassword(),
				userFromUserQuery.isEnabled(), userFromUserQuery.isAccountNonExpired(),
				userFromUserQuery.isCredentialsNonExpired(), userFromUserQuery.isAccountNonLocked(), combinedAuthorities);
	}
protected UserDetails createUserDetails ( String username , UserDetails userFromUserQuery , List < GrantedAuthority > combinedAuthorities ) { String returnUsername = userFromUserQuery . getUsername ( ) ; if ( ! this . usernameBasedPrimaryKey ) { returnUsername = username ; } return new User ( returnUsername , userFromUserQuery . getPassword ( ) , userFromUserQuery . isEnabled ( ) , userFromUserQuery . isAccountNonExpired ( ) , userFromUserQuery . isCredentialsNonExpired ( ) , userFromUserQuery . isAccountNonLocked ( ) , combinedAuthorities ) ; }
Can be overridden to customize the creation of the final UserDetailsObject which is
returned by the <tt>loadUserByUsername</tt> method.

@param username the name originally passed to loadUserByUsername
@param userFromUserQuery the object returned from the execution of the
@param combinedAuthorities the combined array of authorities from all the authority
loading queries.
@return the final UserDetails which should be used in the system.
Can be overridden to customize the creation of the final UserDetailsObject which is returned by the <tt > loadUserByUsername< / tt > method .