[Postagem removida]
Você precisa criar uma classe que implemente a interface UserDetailsService.
Segue um exemplo:
@Service("userService")
public class UserDetailsServiceImpl implements UserDetailsService {
@Override
public UserDetails loadUserByUsername( String username ) throws UsernameNotFoundException
{
//aqui é onde você vai colocar seu código customizado
Usuario dbuser = usuariodao.findById(username);
String password = dbuser.getSenhaUsuario();
boolean enabled = false;
boolean credentialsNonExpired = false;
boolean accountNonExpired = false;
boolean accountNonLocked = false;
Set<String> roles = getRolesForUser(username);
enabled = !isUserDisabled(dbuser);
credentialsNonExpired = !isCredentialExpired(dbuser);
accountNonExpired = !isAccountExpired(dbuser);
accountNonLocked = !isAccountLocked(dbuser);
//esse método deve retornar um objeto User do Spring, que conterá parâmetros que permitem você customizar mais seu processo de login
//aqui, você diz se o usuario está habiliado, se sua conta está expirada, se a senha expirou, se a conta está bloqueada (tentativas erradas de acesso)
// e o ultimo parametro é a lista de roles que o usuario tem acesso
return new User(username,password,enabled,accountNonExpired,credentialsNonExpired,accountNonLocked,toGrantedAuthorities(roles));
}
E o seu applicationContext.xml vai precisar ter :
<bean id="customUserDetails" class="pacote.da.sua.classe.customizada.UserDetailsServiceImpl" />
e isso:
<security:authentication-manager>
<security:authentication-provider user-service-ref="customUserDetails">
</security:authentication-manager>
espero ter ajudado
Abraço
Bruno, era exatamente o que eu estava procurando, funcionou 100%. Muito obrigado pela sua ajuda, foi de grande importância.
Forte abraço…