问题标签 [spring-boot-starter-oauth2-client]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
378 浏览

java - 升级后的 Spring Boot Oauth2 自动配置周期

我正在将我的应用程序从 Spring Boot 2.5.4 升级到 2.6.1 并遇到依赖问题:

**说明:应用上下文中一些bean的依赖形成一个循环:

oidcAuthService 在文件 [/pr/pr-security-oidc/target/classes/com/pr/MyOauth2AuthService.class] 中定义

┌──────┐ | oauth2SecurityConfiguration ↑ ↓ | org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration ↑ ↓ | org.springframework.security.config.annotation.web.configuration.OAuth2ClientConfiguration$OAuth2ClientWebMvcSecurityConfiguration └─────┘**

在排除 WebMvcAutoConfiguration.class 后进行一些调查后,应用程序能够启动,但会导致不同的安全配置相关问题。任何想法新的 Spring 版本发生了什么,为什么 WebMvcAutoConfiguration 和 OAuth2ClientConfiguration 相互冲突?

PS我正在使用spring-boot-starter-oauth2-client和spring boot,在旧版本上没有问题。

谢谢!

0 投票
0 回答
24 浏览

multithreading - 使用 Spring Security oAuthClient 在 Spring WebMVC 应用程序中混合访问令牌

我正在使用带有 oAuth2-Client 的 spring Spring Boot / Security 5.4.8。

我的应用程序具有后台处理(具有 3 个并行作业的线程池)。每个作业的一部分都在使用远程 ReST 服务

  • 这需要 Jwt 身份验证
  • 根据作业的租户上下文,需要不同的范围(如果为租户 A 处理作业,范围必须是 A,依此类推...)

在一个简单的场景中,只处理一个租户的作业,并且访问令牌可以一直重复使用(直到刷新)。这工作正常。

但是对于不同租户的工作,必须更改访问令牌。不幸的是,访问令牌混淆了。表示作业 1(租户 A)的请求包含租户 B 的 AT,依此类推。当访问令牌映射工作以及混淆时,我没有观察到任何确定性行为。

我的条带化代码如下所示。

你对如何解决这个问题有什么建议吗?还是我在做任何概念上的失败?

0 投票
1 回答
85 浏览

spring-security-oauth2 - 访问 userinfo 端点时出现未经授权的错误

我已经OAuth2 client使用 Okta 配置了应用程序并完成了Authorization_code授权流程。应用程序能够获取身份验证代码和令牌,但是当我指定user-info-uri.

我已经为org.springframework.security包启用了调试,但没有得到太多细节。我哪里错了?

更新:当我user-info-uri在配置中有属性并且如果删除,端点是可访问的时,我收到此错误。

application.yml

ApplicationSecurityConfiguration

更新:

我在调试模式下运行应用程序并能够收集以下日志

根据日志,客户端应用程序似乎正在使用access token来获取user-info端点,因此响应是401.

0 投票
1 回答
76 浏览

spring-security-oauth2 - 如何使用 oauth2 客户端应用程序指定范围

我正在使用 Spring Security OAuth2 客户端应用程序并提供了以下配置

我已将范围指定为 only openid,但仍会获得其他范围,例如profileand email。我只想获得 openid 范围。我哪里错了?

0 投票
0 回答
57 浏览

client - 如何使用 client_credentials 从 Spring Cloud Gateway 访问另一个 oauth2 资源

我想使用客户端凭据流从 Spring Cloud Gateway 访问受 OAuth 保护的资源

  • 无需身份验证即可到达网关端点
  • 该资源受 OAuth2 保护,我必须使用客户端凭据流
  • 根据匹配的 PATH 和 HEADERS,请求将使用props 文件中的云网关路由重定向到相应的服务
  • 我需要从 Auth 服务获取 OAuth 令牌并将调用中的不记名令牌传递给受保护资源

观察:

  • 不为令牌调用令牌端点
  • 我从受保护的资源中收到403 Forbidden错误

我已经尝试了 stackoverflow 中提供的许多解决方案,但我无法解决这个问题。我在这里想念什么?

配置文件:

安全配置:

应用程序:

聚甲醛: