Spring Security и AOP - PullRequest
       33

Spring Security и AOP

1 голос
/ 09 августа 2010

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

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

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

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

1 Ответ

2 голосов
/ 09 августа 2010

Скорее используйте 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());
    }
}
...