gpt4 book ai didi

spring-security - 不再需要 Spring Security ROLE_ 前缀?

转载 作者:行者123 更新时间:2023-12-04 15:47:30 27 4
gpt4 key购买 nike

我一直在研究如何创建自定义角色前缀,直到我意识到这无关紧要。只要我的数据库中的角色匹配以下内容:

<security:intercept-url pattern="/person/myProfile/**" access= "hasRole('BlaBla')" />

这不是示例,在 db 中,我确实设置了角色 BlaBla 进行测试并且它有效。

我不喜欢出现不同的行为 - 许多人在设置自定义前缀以创建自定义角色时遇到问题。这里会发生什么,我应该期待隐藏的岩石吗?

我有 3.0.7 版本。在我对权限的查询中,我没有“默认”值...
是版本问题吗?

最佳答案

可能你正在使用:

 <http use-expressions="true"> 

配置一个 WebExpressionVoter 它将为具有授予权限“BlaBla”的用户投票(在您的情况下)

请记住,安全对象(例如 URL)的授权是由 AccessDecisionManager 执行的。

具体的 AccessDecisionManager 有三个:肯定的、一致的和一致的。

为了做出决定,他们使用 AccessDecissionVoters 列表。

RoleVoter,您所期望的,具有可配置的 rolePrefix(默认为 ROLE_)、AuthenticatdVoter 和新的 WebExpressionVoter。

不要忘记 AccessDecissionManager 及其 Voters 的组合可能会以一种您认为不合逻辑的方式允许或拒绝该权限。

我建议您调试请求以查看 URL 和模式是否与您预期的匹配。

关于spring-security - 不再需要 Spring Security ROLE_ 前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8314690/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com