Как использовать собственную базу данных в качестве аутентификации в Spring Security - PullRequest
1 голос
/ 21 марта 2011

У меня есть класс регистрации с полем электронной почты и паролем.

У меня есть класс regsitrationService

public Registration searchUser(String email)
{
      logger.debug("Getting Email");
      Session session = sessionFactory.getCurrentSession();
      String query = "FROM Registration WHERE email=:email";
      Query query2 = session.createQuery(query);
      query2.setString("email",email);
      return (Registration) query2.uniqueResult(); 
}

Я применил пружинную защиту, используя онлайн-пример http://krams915.blogspot.com/2010/12/spring-security-mvc-integration_18.html

Он написал это в Customuserdetailsservice

 private UserDAO userDAO = new UserDAO();

 /**
  * Retrieves a user record containing the user's credentials and access.
  */
 public UserDetails loadUserByUsername(String username)
   throws UsernameNotFoundException, DataAccessException {

  // Declare a null Spring User
  UserDetails user = null;

  try {

   // Search database for a user that matches the specified username
   // You can provide a custom DAO to access your persistence layer
   // Or use JDBC to access your database
   // DbUser is our custom domain user. This is not the same as Spring's User
   DbUser dbUser = userDAO.searchDatabase(username);

   // Populate the Spring User object with details from the dbUser
   // Here we just pass the username, password, and access level
   // getAuthorities() will translate the access level to the correct role type

   user =  new User(
     dbUser.getUsername(),
     dbUser.getPassword().toLowerCase(),
     true,
     true,
     true,
     true,
     getAuthorities(dbUser.getAccess()) );

  } catch (Exception e) {
   logger.error("Error in retrieving user");
   throw new UsernameNotFoundException("Error in retrieving user");
  }

Пример базы данных, приведенный в примере, работает нормально, но я запутался, как использовать мой класс Registration and RegistrationService для аутентификации пользователей по этому имени пользователя и паролю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...