Java Springboot 自动bean的顺序

问题描述 投票:0回答:1

我使用以下示例将 Keycloak 集成到我的服务中。 https://www.baeldung.com/spring-boot-keycloak

这对我来说效果很好。 spring.security.oauth2.resourceserver.jwt.issuer-uri=http://localhost:8080/realms/SpringBootKeycloak

现在我添加了 ssl 配置。这应该首先执行,这样它也可以工作。 spring.security.oauth2.resourceserver.jwt.issuer-uri=https://localhost:8080/realms/SpringBootKeycloak

但是 InMemoryClientRegistrationRepository 它总是预先加载的。我如何影响这里的顺序?

我尝试像这样注册一个 ClientRegistrationRepository @Bean : https://docs.spring.io/spring-security/reference/servlet/oauth2/login/core.html

但这需要比我的示例中的解决方案更多的参数。另外,我不想创建新的客户端注册,而只想影响自动生成的客户端加载的时间

java spring-boot
1个回答
0
投票

您正在阅读的 Baeldung 文章配置了 OAuth2 客户端(带有

oauth2Login
)。其中涉及资源服务器的部分大多是误导性的,并且未使用的是构建的解决方案。我建议您看一下我的教程,有机会了解 OAuth2 客户端与资源服务器之间的差异,以及两者之间截然不同的安全考虑因素(这使得在单个安全性中配置两者变得毫无意义)过滤器链如您阅读的文章中所做的那样)。

Spring OAuth2 客户端急切地获取 OpenID 配置,因为它尝试使用授权服务器公开的 OpenID 配置进行自动配置。只需确保您的服务启动顺序正确(授权服务器第一个启动,Spring OAuth2 客户端最后启动)。如果授权服务器宕机,你的后端就不可能工作......

另请查看这个其他答案:将 SSL 与自签名证书一起使用时,请确保使用相同的值:

  • hostname
  • 的钥匙斗篷
  • 证书CN
  • 配置Spring
    issuer-uri
© www.soinside.com 2019 - 2024. All rights reserved.