Spring Security 访问因缺少角色而被拒绝记录

use*_*339 5 logging spring spring-security

对于 Spring Security 中的访问被拒绝登录,是否有开箱即用的解决方案。我想要的基本上是显示用户在收到访问被拒绝异常时缺少哪个角色。

如果没有,我必须走上拥有自己的 accesssDeniedHandler 的道路,如何访问在抛出访问被拒绝异常的控制器上配置的角色。

谢谢!

Sha*_*eep 2

不,不存在现成的“缺失角色”概念。

访问被拒绝事件通过 Spring 的标准事件机制发布,您可以使用 来ApplicationListener订阅这些事件,但不能假设访问决策纯粹基于 Spring Security 中的角色。为此,您需要自定义AccessDecisionManager实现以记录有关如何得出特定决策的信息。

在这种情况下,这AccessDeniedHandler并不真正相关。