问题标签 [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.
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 授权服务器是一件大事。
怎么做?我想与社区分享相同的内容,并在下面自己回答
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>
)。
还有其他人遇到这个问题吗?
- 基督教
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.UserDetailsService”类型,但实际上是“com.canco.resource.api”类型.dao.user.UserService$MockitoMock$396927620' 在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:
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 可以提供帮助?或者根本原因是另一个?
keycloak - Spring Cloud Config Server OAuth2 授权
我有一个配置服务器和运行配置服务器的 Spring Boot 微服务,需要基本身份验证用户/密码。我有一个 Keycloak 服务器,我想将其用于微服务对配置服务器的身份验证和授权。我已将 keycloak spring boot 适配器添加到配置服务器,因此现在配置服务器需要 OAuth2 令牌,并已通过 Postman 验证它可以按预期工作。
这是我的微服务 pom
这是我的 bootstrap.yml
对配置服务器的引导调用没有 OAuth2 持有者令牌。我错过了什么?
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-client
web_application_and_resource_server
我不确定如何配置资源服务器的属性,我尝试了以下属性:
配置如何应用于资源服务器?
使用上述配置,我收到一个错误webapi cant accept authorisation code as a granttype
,这是真的。
AZure 广告级别是否需要任何特定配置? 所有 API 都在 Spring Boot 应用程序本身内。我只需要使用令牌对所有 API 进行身份验证。
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 客户端是发送请求的那个,我们实际上可以配置什么?该文档并没有真正解释太多。
spring-security - 具有自定义属性的 Spring Boot oAuth2 响应
我正在将 webclient 与 Spring OAuth2 客户端集成。这是在 servlet 应用程序中完成的。这是使用客户端凭据流。
目前在调用端点时使用上述 bean 时出现错误,因为令牌响应有点自定义。即它发送除了access_token、refresh_token等之外的一些附加信息。
尝试映射列表 (custom_attr) 的属性时引发错误。是否可以忽略这些类型的未知映射或创建自定义令牌映射?
spring-oauth2 - 如何从邮递员测试 oauth2 客户端应用程序?
我有一个 oauth2 客户端应用程序,它有一个 POST 服务方法。该特定的 POST 服务方法在内部通过传递一些参数来使用 REST API。我在那个 oauth2 客户端应用程序中还有一个 GET 服务方法,当我们尝试点击它时,它只会返回“成功”。
但是,当我从浏览器调用该 GET 方法时,它会将我重定向到 oauth2 登录页面,在该页面中我提供了我的用户名和密码登录凭据,并且我还能够看到“成功”响应。
由于该方法是 GET 并且我不想发送任何正文,因此我可以使用浏览器。但是,正如我所说,我还有一个 POST 方法,它基本上接受一些正文参数,所以在这里,我很困惑如何从邮递员那里调用它,我可以发送正文参数。如果我尝试从邮递员那里点击它,它会给我 HTML 页面响应,即只有 oauth2 登录页面。
请就实现这一目标提供您的建议