我设置了 Spring Cloud Gateway 服务,该服务将请求从前端应用程序重定向到后端服务。我希望对其中一些请求进行身份验证,因此我还运行了一个 keycloak 服务器。这两个服务都在 docker 内部运行并共享 docker 网络。我尝试在 docker 网络之外运行 Spring cloud gateway,它工作正常,我可以使用 keycloak 表单登录,但是一旦我设置了 docker 设置,当我尝试使用正确的凭据登录时,我会看到此页面结果,IP 是我的 wsl ip,docker 正在其中运行,并且也在配置中用作 keycloak-host。
这是我的application.yml配置:
server:
port: 8080
spring:
cloud:
gateway:
default-filters:
- DedupeResponseHeader=Access-Control-Allow-Credentials Access-Control-Allow-Origin Access-Control-Request-Headers
- SaveSession
- TokenRelay=
routes:
- id: resource
uri: ${postman-mock}
predicates:
- Path=/resource
security:
oauth2:
client:
provider:
keycloak:
issuer-uri: ${keycloak-host}/realms/${realm}
user-name-attribute: preferred_username #here also tried with email
registration:
keycloak:
provider: keycloak
client-id: ${client-id}
client-secret: ${client-secret}
authorization-grant-type: authorization_code
scope:
- openid
- profile
- email
- roles
resourceserver:
jwt:
issuer-uri: ${keycloak-host}/realms/${realm}
在 keycloak 配置中,我尝试了多个有效重定向 URI 和有效注销后重定向 URI 但目前两者都已设置
*
。
知道可能出现的问题吗?
你成功了吗?