Package mireka.submission

Source Code of mireka.submission.UsernamePasswordValidatorImpl

package mireka.submission;

import mireka.login.LoginResult;
import mireka.login.LoginSpecification;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.subethamail.smtp.auth.LoginFailedException;
import org.subethamail.smtp.auth.UsernamePasswordValidator;

/**
* TODO: prevent brute-force attack on passwords
*/
public class UsernamePasswordValidatorImpl implements UsernamePasswordValidator {
    private final Logger logger = LoggerFactory
            .getLogger(UsernamePasswordValidatorImpl.class);
    private LoginSpecification loginSpecification;

    @Override
    public void login(String username, String password)
            throws LoginFailedException {
        LoginResult loginResult =
                loginSpecification.evaluatePlain(username, password);
        switch (loginResult.decision) {
        case VALID:
            logger.debug("{} logged in", username);
            return;
        case PASSWORD_DOES_NOT_MATCH:
            logger.debug("Password doesn't match for username {}", username);
            throw new LoginFailedException(
                    "Password doesn't match for username " + username);
        case USERNAME_NOT_EXISTS:
            logger.debug("Username {} doesn't exist", username);
            throw new LoginFailedException("Username " + username
                    + " doesn't exist");
        case INVALID:
            logger.debug("User {} - password pair is not valid", username);
            throw new LoginFailedException("No user with name " + username
                    + " and supplied password was found");
        }
    }

    /**
     * @category GETSET
     */
    public LoginSpecification getLoginSpecification() {
        return loginSpecification;
    }

    /**
     * @category GETSET
     */
    public void setLoginSpecification(LoginSpecification users) {
        this.loginSpecification = users;
    }

}
TOP

Related Classes of mireka.submission.UsernamePasswordValidatorImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.