2016-12-26 72 views
3

我在Spring Security之外有一个自定义验证实现,我正在进行集成。Spring中的自定义验证用户

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

除getAuthority函数外,一切似乎都正常工作。

我在我的User模型中实现了UserDetails。

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

但是,我得到了下面的答复。

“消息”:“A给予的授权文本表示需要”,

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

我想我的问题是这个

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

回答

2

这取决于。

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

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

相关问题:

  1. Custom security configuration
  2. Adding additional roles
+0

感谢您的建议。我已经为你建议的前缀修改了数据库,但是我仍然得到相同的响应。我会审查你发送的链接。 – Yonkee

+0

你说得对。我只是意识到我仍然在使用一个没有角色的虚拟用户对象。我刚刚更新使用您建议的前缀从数据库拉,现在它正在工作。谢谢你的帮助。 – Yonkee