如何在Spring BOOT中将用户映射到Rest API?

时间:2018-08-31 12:26:38

标签: spring-boot spring-security

我的要求是我想限制用户访问某些特定的API,即将用户分组以访问某些API。例如: 假设我的用户为A,B,C,D,而Apis的用户为a,b,c,d,e,f,i,j。我希望用户A访问a,b和c API;用户B访问b,c,d;用户C访问e,f,i API,用户D访问D API。

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果没有其他考虑,最简单的解决方案可能是为每个端点分配GrantedAuthorities。

@Bean
public UserDetailsService userDetailsService() {
    InMemoryUserDetailsManager inMemoryUserDetailsManager = new InMemoryUserDetailsManager();
    inMemoryUserDetailsManager.createUser(
            User.builder()
                    .username("A")
                    .password("secret")
                    .authorities("a","b","c")
                    .build());
    return inMemoryUserDetailsManager;
}