Bonjour,

Je débute avec Acegi. J'ai trouvé pas mal de tutoriels, mais la majorité restent à un niveau de base. Aussi voici une question que je me pose : comment récupérer les erreurs d'Acegi par exemple pour les afficher dans la page?

En effet, la majorité des tutoriels expliquent comment retourner facilement une page d'erreur en cas de mauvais login. Par exemple

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<bean id="authenticationProcessingFilter" class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
                ...
                <property name="authenticationFailureUrl">
                        <value>/login.html?error=true</value>
                </property>
                ...
</bean>
Mais via ce mécanisme, tout ce qu'on sait dire, c'est qu'il y a eu une erreur, mais pas laquelle. Or ce n'est pas toujours à cause d'un mauvais mot de passe que le login est refusé.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public class UserDetailsServiceImpl implements org.acegisecurity.userdetails.UserDetailsService {
        ...
        public UserDetails loadUserByUsername(String login) throws UsernameNotFoundException, DataAccessException {     
        ...
                return new org.acegisecurity.userdetails.User(login, user.getPassword(), user.getEnabled(), !user.getAccountExpired(), !user.getCredentialsExpired(), !user.getLocked(), arrayAuths);
        }
}
En effet, maintenant si je veux prévenir mon utilisateur qu'il s'est vu refuser le login parce que son compte a été bloqué, ou n'est pas encore été activé, etc. Comment puis-je m'y prendre?

Merci pour vos réponses