【问题标题】:Custom Auth User in SpringSpring中的自定义身份验证用户
【发布时间】:2017-05-10 17:00:01
【问题描述】:

我在 Spring Security 之外有一个自定义身份验证实现,我正在集成它。

我正在根据我现有的用户模型生成一个 Spring 用户作为身份验证过程的一部分。

除了 getAuthority 函数之外,一切似乎都运行良好。

我在实现 UserDetails 的用户模型中有以下内容。

  @Override
    public Set<GrantedAuthority> getAuthorities() {
        Set<GrantedAuthority> authorities = new HashSet<GrantedAuthority>();
        authorities.add(new SimpleGrantedAuthority(this.role));
        return authorities;
    }

但是,我收到以下回复。

"message": "需要授权的文本表示形式",

我相信我的数据库中缺少正确角色的生成。目前private String role 是“USER”。

我想我的问题是这样的

我的角色字段的正确格式是什么才能使其正常工作?插入此角色的最佳方式是什么?

【问题讨论】:

    标签: java spring spring-security


    【解决方案1】:

    视情况而定。

    如果您使用Spring 的默认安全配置,则需要“ROLE_”前缀。 通常,基本值为:ROLE_USERROLE_ADMIN

    如果不是 - 检查自定义配置。

    相关问题:

    1. Custom security configuration
    2. Adding additional roles

    【讨论】:

    • 感谢您的建议。我已经为您建议的前缀修改了数据库,但是我仍然得到相同的响应。我会查看您发送的链接。
    • 你是对的。我刚刚意识到我仍在使用一个没有角色的虚拟用户对象。我刚刚更新为使用您建议的前缀从数据库中提取,它现在正在工作。感谢您的帮助。
    猜你喜欢
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 2014-12-13
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    相关资源
    最近更新 更多