Subversion Repositories bacoAlunos

Rev

Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.services.authenticate;

import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.utl.ist.berserk.logic.serviceManager.IService;


/*
 * @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
 *
 *
 * Created at 17/Out/2003 , 23:45:24
 *
 */

/**
 * @author Jorge Machado
 *
 *
 * Created at 17/Out/2003 , 23:45:24
 *
 */

public class AuthenticateService implements IService
{
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(AuthenticateService.class);

    public void run(1.5.0/docs/api/java/lang/String.html">String username, 1.5.0/docs/api/java/lang/String.html">String password, UserSession userSession) throws ServiceException
    {
        if(userSession.getUser() != null)
            throw new AuthenticateException(AuthenticateException.ALREADY_AUTHENTICATED);

        User u = DaoFactory.getUserDaoImpl().loadByUsernameAndPassword(username,password);

        if(u == null)
        {
            logger.warn("user:" + username + " fail password");
            throw new AuthenticateException(AuthenticateException.FAIL_AUTHENTICATION);
        }
        logger.warn("user:" + username + " authenticated");
        userSession.setName(u.getName());
        userSession.setUsername(u.getUsername());
        userSession.setUser(u);
        DaoFactory.getUserSessionDaoImpl().reattach(userSession);
    }
}