如何在kubernetes中配置keycloak?

8hhllhi2  于 2022-12-29  发布在  Kubernetes
关注(0)|答案(1)|浏览(305)

我有一个Spring云API网关与keycloak服务器进行JWT身份验证。如果我从eclipse运行我的应用程序,并将keycloak作为单个Docker容器,它工作正常。但是,当我将我的Sping Boot 应用程序作为Docker容器运行时(使用Docker compose或kubernetes),它无法使用keycloak进行授权,并引发以下错误。

org.springframework.security.oauth2.jwt.JwtDecoderInitializationException: Failed to lazily resolve the supplied JwtDecoder instance
 at org.springframework.security.oauth2.jwt.SupplierReactiveJwtDecoder.wrapException(SupplierReactiveJwtDecoder.java:48) ~[spring-security-oauth2-jose-5.7.6.jar!/:5.7.6]
 Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
.
.
Caused by: java.lang.IllegalArgumentException: Unable to resolve the Configuration with the provided Issuer of "http://keycloak-server:8080/realms/master"
 at org.springframework.security.oauth2.jwt.JwtDecoderProviderConfigurationUtils.getConfiguration(JwtDecoderProviderConfigurationUtils.java:161) ~[spring-security-oauth2-jose-5.7.6.jar!/:5.7.6]
 at org.springframework.security.oauth2.jwt.JwtDecoderProviderConfigurationUtils.getConfigurationForIssuerLocation(JwtDecoderProviderConfigurationUtils.java:79) ~[spring-security-oauth2-jose-5.7.6.jar!/:5.7.6]

这种情况是否需要任何其他配置?

nr7wwzry

nr7wwzry1#

如果keycloak和springboot应用程序部署在不同的名称空间中,则需要将名称空间包含在springboot应用程序中配置的keycloak url中(https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#namespaces-of-services)。
您可能还需要检查keycloak的kubernetes服务是否配置正确。

相关问题