问题标签 [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 回答
1418 浏览

java - Spring Boot Oauth2 Client(Reactive) Mutual TLS/SSL token uri

Spring boot 2.3.x 和 Spring 5.x 最近添加了对基于WebClient类配置响应式 oauth2 客户端的支持。

我需要客户端凭据授予流程配置

在没有 Mutual TLS/SSL 的情况下进行此调用非常简单。

正常(无 TLS/SSL)配置(@Configuration)代码提取如下:-

属性文件

但是通过 Mutual TLS(客户端证书)调用 oauth2 授权服务器是一件大事。

怎么做?我想与社区分享相同的内容,并在下面自己回答

0 投票
1 回答
173 浏览

spring-boot - Spring Boot 2.3.4:JwtValidators.createDefaultWithIssuer(String) 的错误?

我发现 JWT 解析和 JwtValidators 有一个奇怪的行为。

设想:

  • Spring Boot OIDC 客户端(目前是一个小型 Web 应用,仅显示登录用户和 Spring 提供的一些 OIDC 对象)
  • 自定义JwtDecoderFacotry<ClientRegistration>ID-Token 验证
  • JwtValidatorFactory基于JwtValidators.createDefaultWithIssuer(String)

这适用于 Spring Boot 版本 <= 2.2.10。

调试:

  • NimbusJwtDecoder(JAR spring-security-oauth2-jose) 使用声明集转换器。'iss'(颁发者)声明作为 URL 处理。
  • JwtIssuerValidator(由 内部创建JwtValidators.createDefaultWithIssuer(String))包装一个JwtClaimValidator<String>.
  • 这个最后equals()总是调用它false-它将字符串与 URL 进行比较。

我目前的解决方法不是调用JwtValidators.createDefaultWithIssuer(),而是使用验证器new JwtTimestampValidator()和自己的实现OAuth2TokenValidator<Jwt>(使用 wrapping JwtClaimValidator<URL>)。

还有其他人遇到这个问题吗?

- 基督教

0 投票
0 回答
221 浏览

spring-boot - 我如何模拟 UserServiceDetails 和 Userservice

org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“authorizationServerConfig”的bean时出错:通过字段“tokenStore”表示的依赖关系不满足;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“securityConfig”的 bean 时出错:注入资源依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanNotOfRequiredTypeException:名为“userService”的 Bean 应为“org.springframework.security.core.userdetails.UserDetailsS​​ervice”类型,但实际上是“com.canco.resource.api”类型.dao.user.UserService$MockitoMock$396927620' 在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:

0 投票
1 回答
830 浏览

spring-security - 在 Spring Cloud Gateway 的 oauth2 客户端流中禁用重定向到 oauth2/authorization/{registrationId}

是否可以在 oauth2 客户端流程中禁用重定向到 oauth2/authorization/{registrationId}?我在 Spring Cloud Gateway 中具有以下 oauth2 流属性,但我没有指定 url oauth2/authorization/{registrationId}:

在此处输入图像描述

屏幕截图中的请求 URL 在这里:https://myscgapp/oauth2/authorization/smart_hub_client

更新:我已将上面的 conf 更新为我的示例。主要问题 - 我有重定向循环。也许禁用 https://myscgapp/oauth2/authorization/smart_hub_client 可以提供帮助?或者根本原因是另一个?

我有这样的重定向循环: 在此处输入图像描述

0 投票
0 回答
492 浏览

keycloak - Spring Cloud Config Server OAuth2 授权

我有一个配置服务器和运行配置服务器的 Spring Boot 微服务,需要基本身份验证用户/密码。我有一个 Keycloak 服务器,我想将其用于微服务对配置服务器的身份验证和授权。我已将 keycloak spring boot 适配器添加到配置服务器,因此现在配置服务器需要 OAuth2 令牌,并已通过 Postman 验证它可以按预期工作。

这是我的微服务 pom

这是我的 bootstrap.yml

对配置服务器的引导调用没有 OAuth2 持有者令牌。我错过了什么?

0 投票
0 回答
56 浏览

spring-boot - 如何禁用 LogoutPageGeneratingWebFilter?

我想在没有由 LogoutPageGeneratingWebFilter 生成的默认注销页面的情况下实现 oauth2 注销。
然后如果可能的话,我想使用“/logout”网址。

但是,尽管我尝试在 LogoutPageGeneratingWebFilter 的位置设置过滤器,但我找不到如何禁用它。
当我尝试这个时,两个过滤器都起作用了。(我的过滤器和 LogoutPageGeneratingWebFilter。)

・我的期望
当我点击注销链接(url是“/logout”)时,注销的逻辑可以在不重定向默认注销页面的情况下工作。

我想跳过这个页面。 在此处输入图像描述

我的示例课程如下。

0 投票
0 回答
98 浏览

azure-active-directory - Web Api 不支持授权代码授权类型:oauth2-resource-server 和 oauth2-client 在单个应用程序中作为 web_application_and_resource_server

我正在尝试将单个应用程序配置spring-boot-starter-oauth2-resource-server为. 遵循这些说明后,我遇到以下错误:spring-boot-starter-oauth2-clientweb_application_and_resource_server

我不确定如何配置资源服务器的属性,我尝试了以下属性:

配置如何应用于资源服务器? 使用上述配置,我收到一个错误webapi cant accept authorisation code as a granttype,这是真的。

AZure 广告级别是否需要任何特定配置? 所有 API 都在 Spring Boot 应用程序本身内。我只需要使用令牌对所有 API 进行身份验证。

0 投票
2 回答
186 浏览

java - Spring Security:.oauth2Client(withDefaults()) 的目的;在 HttpSecurity

这是来自文档

公共 HttpSecurity oauth2Client(Customizer<OAuth2ClientConfigurer> oauth2ClientCustomizer)抛出 java.lang.Exception

配置 OAuth 2.0 客户端支持。

示例配置

以下示例演示如何为所有端点启用 OAuth 2.0 客户端支持。

参数: auth2ClientCustomizer - 为 OAuth2ClientConfigurer 提供更多选项的定制器

返回:用于进一步自定义的 HttpSecurity

我的理解是任何到达该服务器的请求都应该经过身份验证。

.oauth2Client(withDefaults());在这种情况下如何提供 帮助?

如果我没记错的话,一个 oAuth2 客户端是发送请求的那个,我们实际上可以配置什么?该文档并没有真正解释太多。

0 投票
0 回答
27 浏览

spring-security - 具有自定义属性的 Spring Boot oAuth2 响应

我正在将 webclient 与 Spring OAuth2 客户端集成。这是在 servlet 应用程序中完成的。这是使用客户端凭据流。

目前在调用端点时使用上述 bean 时出现错误,因为令牌响应有点自定义。即它发送除了access_token、refresh_token等之外的一些附加信息。

尝试映射列表 (custom_attr) 的属性时引发错误。是否可以忽略这些类型的未知映射或创建自定义令牌映射?

0 投票
0 回答
15 浏览

spring-oauth2 - 如何从邮递员测试 oauth2 客户端应用程序?

我有一个 oauth2 客户端应用程序,它有一个 POST 服务方法。该特定的 POST 服务方法在内部通过传递一些参数来使用 REST API。我在那个 oauth2 客户端应用程序中还有一个 GET 服务方法,当我们尝试点击它时,它只会返回“成功”。

但是,当我从浏览器调用该 GET 方法时,它会将我重定向到 oauth2 登录页面,在该页面中我提供了我的用户名和密码登录凭据,并且我还能够看到“成功”响应。

由于该方法是 GET 并且我不想发送任何正文,因此我可以使用浏览器。但是,正如我所说,我还有一个 POST 方法,它基本上接受一些正文参数,所以在这里,我很困惑如何从邮递员那里调用它,我可以发送正文参数。如果我尝试从邮递员那里点击它,它会给我 HTML 页面响应,即只有 oauth2 登录页面。

请就实现这一目标提供您的建议

邮递员电话截图