2014-05-01 3 views

Répondre

1

Lorsque l'utilisateur se connecte correctement la sécurité de printemps appelez une instance de AuthenticationSuccessHandler. Ce que vous voulez faire est de créer votre propre bean et l'utiliser pour effectuer toutes les actions supplémentaires que vous voulez.

Votre classe chercherais probablement quelque chose comme ceci:

public class YourAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler { 

     @Override 
     public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { 

     //do whatever you want 
     super.onAuthenticationSuccess(request, response, authentication); 
    } 
} 

également enregistrer votre classe comme un grain de printemps

<beans:bean id="authenticationSuccessHandler" 
      class="your.package.YourAuthenticationSuccessHandler"/> 

et l'ajouter à la forme connexion configuration de sécurité que la valeur de authentication-success-handler-ref

+0

Merci beaucoup! C'est une excellente solution et je l'ai dans une condition, si j'inclue le dans mon spring-security.xml. Si je l'inclut dans myapp-servlet.xml il ne peut pas le trouver (ne peut pas résoudre la référence du bean) ?! Des idées pourquoi? Ne devrait-il pas être capable de? – user3594045

+0

@ user3594045 Content de vous aider! Tout dépend de ce à quoi ressemble votre configuration. Ce n'est pas un fait que vous pouvez ajouter du bean dans n'importe quelle configuration et cela fonctionnera. – geoand

+0

Intéressant. Je ne le savais pas. J'ai pensé que Spring a chargé toutes ses configurations dépendantes en premier et ensuite commencé tout le câblage. Cela fonctionne alors! Merci! – user3594045

Questions connexes