当前位置: 首页 > 知识库问答 >
问题:

使用 oAuth2 |保护 Spring Boot API筛选用户

方琦
2023-03-14

我有一个Spring boot API,我设法用oAuth2和Google来保护它。我有类似的东西:Rest,Spring自己的OAuth2服务器OAuth2提供商,如脸书,谷歌,雅虎

一切按预期运行。

我的问题是这样的:我如何知道限制某些用户(不是每个谷歌用户)的访问?对我来说这听起来像是授权部分。我不知道从哪里开始,因为在这方面我是个初学者。

感谢任何帮助或指点。

共有1个答案

酆俊远
2023-03-14

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

例如,我有一个带有endpoint的API,例如/api/家庭?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

}
 类似资料:
  • 我们有一个应用程序,它使用Azure Spring Boot Active Directory starter“com.microsoft.Azure:Azure Active Directory Spring Boot starter”和Spring Security来保护对该应用程序的访问。这一切都很好。 这是按照以下说明完成的: https://docs.microsoft.com/en-u

  • 我已经检查了OAuth2AuthenticationProcessingFilter和从request中提取的令牌,它返回了一个相同的承载令牌,并以此构建用户详细信息并将其注入到SecurityContextHolder中。 有没有什么方法可以将这种过滤器与oauth2方法一起使用?

  • 问题内容: 我正在使用Dropwizard 0.9.2,我想创建一个资源,该资源不需要GET身份验证,而需要POST基本身份验证。 我努力了 与 这似乎导致对“ / protectedPing”的所有请求都需要基本身份验证。 在Dropwizard 0.9.2中,文档说如果我有一个受保护的资源,则创建一个自定义过滤器。我以为我需要这样做,但是我不知道从哪里开始,或者我是否真的需要做些什么。 问题答

  • Spring.version:4.0.5.release Spring security Version:3.2.5.release Spring security oauth版本:2.0.2.release 球衣版本:1.18.1 我想使用Spring security的PreAuthorize注释来保护我的REST API,在这里我定义了被授权访问方法的角色: 当我使用角色为“role_adm

  • 我已经创建了许多生成/使用JSON数据的Web服务,并使用OAuth2和承载令牌对它们进行了保护,效果很好。 然而,现在我需要构建一个类似的Web服务来生成图像而不是JSON(即JPEG/PNG数据)。为了保持一致性,我也想用OAuth2/承载令牌来保护服务,但是这样做会使服务在基于浏览器的应用程序中更具挑战性,这些应用程序希望使用 我认为有两种方法可以解决这个问题: > 修改OAuth2基础设施