in redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/utils/PasswordValidator.java [58:110]
public String validatePassword( String password, String principal )
throws RedbackServiceException
{
try
{
// password validation with a tmp user
User tempUser = securitySystem.getUserManager().createUser( "temp", "temp", "temp" );
tempUser.setPassword( password );
securitySystem.getPolicy().validatePassword( tempUser );
PasswordEncoder encoder = securitySystem.getPolicy().getPasswordEncoder();
User user = securitySystem.getUserManager().findUser( principal );
String encodedPassword = encoder.encodePassword( password );
user.setEncodedPassword( encodedPassword );
user.setPassword( password );
securitySystem.getPolicy().validatePassword( user );
return encodedPassword;
}
catch ( UserNotFoundException e )
{
log.info( "user {} not found", e.getMessage() );
List<ErrorMessage> errorMessages = new ArrayList<ErrorMessage>( 2 );
ErrorMessage errorMessage = new ErrorMessage( "cannot.update.user.not.found", new String[]{ principal } );
errorMessages.add( errorMessage );
errorMessage = new ErrorMessage( "admin.deleted.account" );
errorMessages.add( errorMessage );
throw new RedbackServiceException( errorMessages );
}
catch ( PasswordRuleViolationException e )
{
PasswordRuleViolations violations = e.getViolations();
List<ErrorMessage> errorMessages = new ArrayList<ErrorMessage>( violations.getViolations().size() );
if ( violations != null )
{
for ( String violation : violations.getLocalizedViolations() )
{
errorMessages.add( new ErrorMessage( violation ) );
}
}
throw new RedbackServiceException( errorMessages );
}
catch ( UserManagerException e )
{
log.info( "UserManagerException: {}", e.getMessage() );
List<ErrorMessage> errorMessages =
Arrays.asList( new ErrorMessage().message( "UserManagerException: " + e.getMessage() ) );
throw new RedbackServiceException( errorMessages );
}
}