2010-08-09 10 views
1

Est-il possible de créer un @Aspect personnalisé et de l'appliquer aux classes/méthodes dans Spring Security (3.0.3)?Spring Security et AOP

J'essaie d'enregistrer les demandes de connexion/déconnexion et aucun de mes conseils n'est déclenché.

J'utilise @AspectJ annotations et voici comment je décorer ma méthode:

@After("execution (* org.springframework.security.authentication.ProviderManager.doAuthentication(..))") 

Répondre

2

utilisent plutôt ApplicationListener pour attraper le connexion réussie. Voir le Javadocs pour les autres types d'événements.

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
import org.springframework.context.ApplicationListener; 
import org.springframework.security.authentication.event.AuthenticationSuccessEvent; 
import org.springframework.stereotype.Component; 

@Component 
public class AuthenticationSuccessListener implements ApplicationListener<AuthenticationSuccessEvent> { 
    private static final Logger logger = LoggerFactory.getLogger(AuthenticationSuccessListener.class); 

    @Override 
    public void onApplicationEvent(final AuthenticationSuccessEvent event) { 
     logger.debug("User {} logged in", event.getAuthentication().getName()); 
    } 
} 
+0

Bonne idée, merci! J'étais, cependant, capable de faire fonctionner mon Aspect correctement, mais je vais aussi essayer ceci pour me familiariser. –

+0

Cela semble charme. –