【发布时间】:2019-04-08 23:43:56
【问题描述】:
我已经使用ApplicationListener<AuthenticationFailureBadCredentialsEvent> 实现了AuthenticationFailureListener 登录失败,并且我所有的Bad Credentials 事件都在同一个类中处理,非常方便,我尝试向ExpiredJwtException 或SignatureException 添加一个监听器,但我无法确定触发了哪个事件,我试过了 -
@Component
public class ApplicationEventListener implements ApplicationListener<ApplicationEvent>{
@Override
public void onApplicationEvent(ApplicationEvent event) {
System.out.println(event.toString()); //not printed when ExpiredJwtException thrown
}
}
捕获所有ApplicationEvent,但当其中一个异常发生时,方法onApplicationEvent 不会触发。
我可以捕捉到这个异常,但我想像BadCredentialsException 一样在全球范围内处理它们,由AuthenticationFailureBadCredentialsEvent 处理。
试过AuthenticationFailureExpiredEvent -
@Component
public class ApplicationEventListener implements ApplicationListener<AuthenticationFailureExpiredEvent>{
@Override
public void onApplicationEvent(AuthenticationFailureExpiredEvent event) {
System.out.println("Expired!!"); //same result
}
}
但仍然无法正常工作。
【问题讨论】:
标签: java spring spring-security jwt jjwt