Ric*_*ini 9 spring exception-handling exception spring-security
我们将Spring Security 3.1.3-RELEASE与方法级安全性一起使用.它完美地运作.
我想记录,也许展现给用户,为什么他越来越拒绝访问.
使用org.springframework.security.web.access.AccessDeniedHandlerImpl
子类,我可以获得对org.springframework.security.access.AccessDeniedException
抛出的引用,但是我找不到一种方法来确定导致它的原因(例如,"缺少角色ROLE_ADMIN"或其他东西).
我错过了什么,还是根本不存在?
不幸的是,Spring Security 中可用的默认实现是不可能的。
我调查了源代码并...
MethodSecurityInterceptor
负责保护方法调用。它将访问决策委托给AccessDecisionManager
。我检查了每一个AccessDecisionManager
可用的开箱即用的实现。
他们每个人都AccessDeniedException
以类似的方式抛出异常。
case AccessDecisionVoter.ACCESS_DENIED:
throw new AccessDeniedException(
messages.getMessage("AbstractAccessDecisionManager.accessDenied",
"Access is denied")
);
Run Code Online (Sandbox Code Playgroud)
AbstractAccessDecisionManager.accessDenied
是消息的名称,可以本地化。
对于英语,它是:
AbstractAccessDecisionManager.accessDenied=Access is denied
Run Code Online (Sandbox Code Playgroud)
有多种开箱即用的语言,您可以自行翻译,但是...
就是这样,没有更多关于异常原因的信息。
有关异常消息本地化的更多信息:
归档时间: |
|
查看次数: |
2597 次 |
最近记录: |