【问题标题】:Spring security : User class without UserRole (roles). Authentication only no authorization neededSpring security:没有 UserRole(角色)的用户类。仅认证无需授权
【发布时间】:2015-12-17 13:16:39
【问题描述】:

我将 Spring-security 与 Spring-boot 一起使用。我的应用程序是 POC,暂时不需要角色。

我想知道是否有可能在 loadUserByUsername 方法中返回 UserDetails 但没有 GrantedAuthority 或 UserRole 类的自定义 UserDetailsService。

我整天都在谷歌上搜索一个例子,但我总是用UserRole 找到它们。

提前致谢

【问题讨论】:

  • 为什么不给每个经过身份验证的用户一个默认角色?我不认为你可以在没有角色的情况下配置 Spring Security。
  • 我认为您是对的,但问题是我可以定义一个仅具有身份验证的应用程序,并可能将其扩展为具有授权,而不是必须同时拥有它们。
  • 任何人都有只需要用户名和密码来验证并为该用户创建会话的 git 项目吗?

标签: java spring-security spring-boot


【解决方案1】:

这应该可行:

  1. 让UserDetails在getAuthorities()中返回一个空集合:

    public class User implements UserDetails {
        ...
        @Override
        public Collection<? extends GrantedAuthority> getAuthorities() {        
            return new HashSet<GrantedAuthority>();
        }
    }
    
  2. 在配置安全性时只使用authenticated()

    http.authorizeRequests()
        ...
        .antMatchers("/foo").authenticated()
        ...                 
    

【讨论】:

  • 第一部分可以,但为什么要第二部分?
  • 这是因为您只想使用身份验证而不是授权。
猜你喜欢
  • 2014-04-02
  • 1970-01-01
  • 2014-11-04
  • 2010-11-22
  • 2023-02-09
  • 2013-07-28
  • 2020-06-16
  • 1970-01-01
  • 2016-07-01
相关资源
最近更新 更多