spring-boot - Keycloak Spring Boot 令牌未从 Zuul 代理传播到 Spring Boot 服务
问题描述
我有 Zuul 代理,并且在 application.properties 中使用以下配置实现了 keycloak-adapter:
#Keycloak config
keycloak.realm=Development
keycloak.auth-server-url=http://<IP>:8080/auth
keycloak.ssl-required = external
keycloak.public-client=true
keycloak.resource=example
keycloak.use-resource-role-mappings=true
keycloak.security-constraints[0].authRoles[0]=user
keycloak.security-constraints[0].securityCollections[0].patterns[0]=/api/*
keycloak.security-constraints[1].authRoles[0]=operator
keycloak.security-constraints[1].securityCollections[0].patterns[0]=/api/*
keycloak.expose-token=true
# Keycloak Enable CORS
keycloak.cors = true
zuul.ignored-headers=Access-Control-Allow-Credentials, Access-Control-Allow-Origin
zuul.sensitive-headers=Cookie, Set-Cookie
代理的客户端是公共客户端。当我访问它时,我可以看到 keycloak 登录页面,没关系,但是当它重定向我到具有相同配置(zuul 配置除外)的 keycloak-adapter 以及公共客户端的服务时,我收到了一个错误服务日志中的请求和无状态 Cookie。
我注意到的一件事是,当我访问代理上的 Swagger 文档时,由于 CORS,所有内容都被阻止,即使是来自未实现 keycloak 的服务的文档。
编辑:当我从发送令牌的 GUI 制作相同的东西时,它可以按我的意愿工作。
解决方案
推荐阅读
- java - Java 添加到类路径而不覆盖它
- python - df.loc[:, reversed(colnames)] 和 df.loc[:, list(reversed(colnames))] 的区别
- apache-kafka - 如何在两个 Kafka 流之间使用持久的 StateStore
- reactjs - React.js - 有没有办法在 render() 方法之前获取 props.match.params 值?
- jquery - 如何从“显示”和“隐藏”切换到“淡入”和“淡出”?
- angular - 如何为订阅者模拟数据
- javascript - 为什么它起作用 -> key : 'hey' ->'hey' 并且不抛出任何错误?
- ios - 有没有办法用数组构造一个 Firestore 字段(同名)并显示 TableView 中每个字段的每个数组元素
- c++ - 在 C++ 中实现和包装函数组合以进行惰性求值
- python-3.x - 如何在 Windows 10 上将代理配置到 GitBash 环境中