使用oAuth2保护Spring Boot API过滤用户

时间:2017-10-08 00:51:55

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

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

一切都按预期工作。

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

感谢您的帮助或指针。

1 个答案:

答案 0 :(得分:0)

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

比方说我有一个带端点的API,例如/api/family?lastname=doe,这个API的目的是返回一个姓氏与#34; 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

}