У меня есть класс регистрации с полем электронной почты и паролем.
У меня есть класс 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 для аутентификации пользователей по этому имени пользователя и паролю