不幸的是,Spring Security 中可用的默认实现是不可能的。
我研究了源代码并...
MethodSecurityInterceptor
负责保护方法调用。它将访问决策委托给AccessDecisionManager
. 我检查AccessDecisionManager
了开箱即用的每个可用实现。
他们每个人都AccessDeniedException
以类似的方式抛出异常。
case AccessDecisionVoter.ACCESS_DENIED:
throw new AccessDeniedException(
messages.getMessage("AbstractAccessDecisionManager.accessDenied",
"Access is denied")
);
AbstractAccessDecisionManager.accessDenied
是消息的名称,可以本地化。
对于英语,它是:
AbstractAccessDecisionManager.accessDenied=Access is denied
有几种开箱即用的语言,您可以自己制作翻译,但是...
就是这样,没有更多关于异常原因的信息。
有关异常消息本地化的更多信息:
http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#localization