Package org.bigk.invoices.services

Source Code of org.bigk.invoices.services.LoginServiceImpl

package org.bigk.invoices.services;

import java.security.NoSuchAlgorithmException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.bigk.invoices.dao.UsersDAO;
import org.bigk.invoices.exceptions.DBAccessException;
import org.bigk.invoices.exceptions.ServiceException;
import org.bigk.invoices.model.User;
import org.bigk.invoices.utils.DigestUtils;

public class LoginServiceImpl implements LoginService {
  /**
   * Logger for this class
   */
  private static final Log logger = LogFactory.getLog(LoginServiceImpl.class);

  private UsersDAO usersDAO;

  public LoginServiceImpl() {
  }

  public User processLogin(String login, String password)
      throws ServiceException {
    if (logger.isDebugEnabled()) {
      logger.debug("processLogin(String login=" + login + ", String password=xxx) - start");
    }
   
    User user = null;
    try {
      user = usersDAO.getUser4Login(login);
    } catch (DBAccessException ex) {
      logger.error("processLogin(String, String)", ex);
      throw new ServiceException(ex);
    }
   
    if (user == null) {
      throw new ServiceException("No user found for username",
          "services.LoginServiceImpl.processLogin.no_user",
          new Object[] {login}
      );
    }
   
    String passSHA1 = null;
    try {
      passSHA1 = DigestUtils.digestSHA1(password);
    } catch (NoSuchAlgorithmException e) {
      logger.error("processLogin(String, String)", e);
      throw new ServiceException("NoSuchAlgorithmException", e,
          "services.LoginServiceImpl.processLogin.algoritm_problem",
          new Object[] {e.getMessage()}
      );     
    }
   

    if (logger.isDebugEnabled()) {
      logger.debug("processLogin(String, String) - passSHA1=" + passSHA1);
      logger.debug("processLogin(String, String) - user.getPassword()=" + user.getPassword());
    }
   
    if (!passSHA1.equalsIgnoreCase(user.getPassword())) {
      throw new ServiceException("Wrong password",
          "services.LoginServiceImpl.processLogin.wrong_password",
          null
      );
    }
   
    // all ok - user logged in corretly
    if (logger.isDebugEnabled()) {
      logger.debug("processLogin(String, String) - end - return value=" + user);
    }
    return user;
  }

  public int processLogout() throws ServiceException {
    return 0;
  }

  public UsersDAO getUsersDAO() {
    return usersDAO;
  }

  public void setUsersDAO(UsersDAO usersDAO) {
    this.usersDAO = usersDAO;
  }

}
TOP

Related Classes of org.bigk.invoices.services.LoginServiceImpl

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.