Безопасность Spring и AOP

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

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

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

@After("execution (* org.springframework.security.authentication.ProviderManager.doAuthentication(..))")
1
задан El Guapo 9 August 2010 в 01:26
поделиться

1 ответ

Вместо этого используйте 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());
    }
}
2
ответ дан 2 September 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: