【问题标题】:How to Map user to Rest APIs in Spring BOOT?如何在 Spring BOOT 中将用户映射到 Rest API?
【发布时间】:2018-08-31 20:49:34
【问题描述】:

我的要求是我想限制用户访问某些特定的 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。

提前感谢您的帮助。

【问题讨论】:

  • 可以使用数据库创建表并根据用户授予api
  • @AmmarAli 你可以添加一个例子。我想要一个类似于你所说的解决方案。

标签: spring-boot spring-security


【解决方案1】:

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

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

【讨论】:

  • GrantedAuthorities 是什么意思?能举个例子吗?
  • 您在问题上标记了 spring-security,所以我猜您有一个 AuthenticationProviderUserDetailsService 来跟踪用户及其权限。
猜你喜欢
  • 2019-01-22
  • 1970-01-01
  • 2019-04-23
  • 2023-03-18
  • 2018-08-05
  • 2019-07-08
  • 1970-01-01
  • 2019-03-04
  • 2016-03-03
相关资源
最近更新 更多