微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring Security删除RoleVoter前缀

在我正在工作的项目中,我们基于角色ID而不是角色描述进行身份验证,并且此映射存储在数据库中.

我的问题是,如何删除Spring Security的RoleVoter前缀以实现上述设计?

最佳答案
Spring安全性RoleVoter需要一个前缀以区分作为角色的授权权限,有关详细信息,请参阅此answer.

如果要更改此设置,可以始终提供自己的自定义AccessDecisionManager并使用customroleVoter`对其进行配置.

这是此类自定义访问决策管理器的示例:

public class MyAccessDecisionManager  extends AffirmativeBased {


    public MyAccessDecisionManager() {
        super();
        ListVoter> decisionVoters = new ArrayListVoter>();
        RoleVoter roleVoter = new MyCustomroleVoter();
        decisionVoters.add(roleVoter);
        AuthenticatedVoter authenticatedVoter = new AuthenticatedVoter();
        decisionVoters.add(authenticatedVoter);
        setDecisionVoters(decisionVoters);

    }

并使用它代替认访问决策管理器:

ecurity:http access-decision-manager-ref="myAccessDecisionManager">
    ...
ecurity:http>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐