java - Spring Security 中的哪些类/方法处理重定向到 /oauth2/authorization/{registrationId}?需要覆盖容器
问题描述
我们将 API 部署在网关后面的 docker 容器中。网关后面的一切都是http,而不是https。结果,当 Spring Security 尝试将用户重定向到授权 Uri 时,它会重定向到 http,这会引发 404。(因为当重定向命中用户的浏览器时,浏览器无法在 http 找到它,只能在 https 找到)
我一直无法找到此重定向发生的位置。例如,如果用户转到https://thecompany.com/securedpage
,并且 Spring Security 发现他们没有经过身份验证(没有 JWT),那么一些代码将重定向到/oauth2/authorization/{regsitrationId}
.
我找到了解析完成的位置(OAuth2AuthorizationRequestRedirectWebFilter.filter(ServerWebExchange exchange, WebFilterChain chain)
但我似乎找不到重定向发生的位置。我一直沿着安全文件管理器链向下走,但即使在最后一个,重定向响应中也没有标头,也没有有一个状态302
。
如何覆盖重定向以强制执行 https?
解决方案
您是否按照 spring 安全文档中的“代理服务器配置”一章来配置您的网关?
您需要通过设置 X-Forwarded 标头和在您的应用程序中配置 ForwardedHeaderFilter 来让您的应用程序了解该配置(https --> gateway --> http --> your_app)
推荐阅读
- ios - iOS Swift:如何在 UIViewController 中隐藏和显示按钮
- java - 如何使 spring @Value 属性会话范围
- javascript - 处理获取响应的正确方法是什么
- google-cloud-platform - Google Compute Engine Persistent Disk 定价 API
- php - 如何检查用户属性是否是 Symfony 中不同路由组的某个值?
- video - 革命滑块视频自动播放不起作用
- laravel - Laravel ReflectionException (-1) 类国家不存在
- angular-material - 除了通过属性设置角度材质按钮的样式吗?
- haskell - 在 Haskell 中使用泛型获取构造函数索引
- facebook-graph-api - 我正在尝试使用 facebook graph api 在节点 js 中发送 facebook 自定义应用程序事件