【问题标题】:Securing Spring Boot API with oAuth2 | filter users使用 oAuth2 保护 Spring Boot API |过滤用户
【发布时间】:2018-03-19 11:43:07
【问题描述】:

我有一个 Spring Boot API,我设法通过 oAuth2 和 Google 来保护它。 我有类似的东西:Rest, Spring own OAuth2 server + OAuth2 providers like Facebook, Google, Yahoo

一切都按预期进行。

我的问题如下: 我怎么知道限制对某些用户(不是每个谷歌用户)的访问? 这对我来说听起来像是授权部分。我不确定从哪里开始,因为我是这一切的初学者。

感谢任何帮助或指点。

【问题讨论】:

  • 澄清一下,您想限制除 google 用户之外的所有人的访问权限吗?
  • 不是真的。现在我让每个谷歌用户都能访问/使用 API。我想要的是根据他们的个人资料中的某些内容(比如他们的姓氏)限制对某些谷歌用户的访问

标签: java spring spring-boot spring-security oauth-2.0


【解决方案1】:

据我所知,如果您想根据用户的姓氏(以您的示例为例)限制对 API 的访问,我将设置一个我可能会做的事情的示例场景。

例如,我有一个 API,其端点为 /api/family?lastname=doe,在这种情况下,此 API 的目的是返回一个姓氏与“doe”相同的人员列表。如果参数中提供的姓氏等于当前授权用户的姓氏,API 才会返回结果。

所以也许我会按如下方式设置 API:

@RequestMapping(value="/api/family", method = RequestMethod.GET)
@ResponseBody
public List<Member> findFamilyMembersByLastName(@RequestParam(value="lastname", required=true) String lastName){

      User authorizedUser = getCurrentUser(); // Set up a method that is able to get the current logged in user
      if(!authorizedUser.getLastName().equals(lastName){
         // Throw some kind of exception here
      }
      // otherwise perform a query to find a list of Members with last name and return them

}

【讨论】:

    猜你喜欢
    • 2020-07-29
    • 2020-08-27
    • 2015-11-30
    • 2018-08-11
    • 2020-11-30
    • 2016-02-23
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多