gpt4 book ai didi

spring-boot - Keycloak Kubernetes 401未经授权

转载 作者:行者123 更新时间:2023-12-04 15:17:36 24 4
gpt4 key购买 nike

我有一个 keycloak 服务器和一个在 Kubernetes 集群上运行的 spring boot 应用程序,我面临两种情况,第一种情况正常,另一种情况我收到 401 Unauthorized。

第一种情况:

  • 在我的 k8s 集群中使用 kubectl exec 命令进入一个测试容器,并使用 curl POST 请求请求 token :http://keycloak-service-name:8080/auth/realms/lisa/protocol/openid-connect/token
  • 我得到一个 token
  • 我使用该 token 向我的应用程序的安全端点发送来自 postman 的请求,并且它正在运行,已授予访问权限

第二种情况:

  • 通过将 POST 请求发送到 http://keycloak-external-ip:port/auth/realms/lisa/protocol/openid-connect/token 来请求 token ,其中包含来自 postman 的必要参数
  • 我收到一个访问 token
  • 我使用我的应用程序的 token 从 postman 向安全端点发送请求我收到 401 未授权

Keycloak 使用 NodePort 服务公开。

该应用程序使用 istio ingress 网关公开。

Keycloak 服务器版本:9.0.0。

spring boot 应用中的 keycloak 版本:10.0.2

最佳答案

通过更改 application.properties 文件中的 keycloak.auth-server-url 值修复了此问题。keycloak部署有2个服务,一个是clusterIP类型,第二个是nodePort类型

之前

keycloak.auth-server-url=http://keycloak-clusterIP-service-name:8080/auth

之后

keycloak.auth-server-url=http://node-ip-adress:nodePort/auth

关于spring-boot - Keycloak Kubernetes 401未经授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64026176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com