2010-08-09 5 views
1

Возможно ли создать пользовательский @Aspect и применить его к классам/методам в Spring Security (3.0.3)?Spring Security и AOP

Я пытаюсь выполнить некоторые регистрации запросов входа в систему и выхода из системы, и ни один из моих советов не запускается.

Я использую @ AspectJ аннотации и вот как я украшающие мой метод:

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

ответ

2

Вместо использования ApplicationListener поймать входа в систему. См. Javadocs для других типов событий.

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

Хорошо, спасибо! Я, однако, смог заставить свой Aspect работать правильно, но я также попробую, чтобы это стало более знакомым. –

+0

Это выглядит очарование. –