public String validatePassword()

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

    }