如何解决不安全的HttpServletRequest getURI谷歌云
我们正在使用Auth0集成为我们的Spring Boot应用程序提供身份验证。 在Docker谷歌云运行中部署了一个应用程序。
但是当我尝试交换令牌时,我收到来自auth0的错误消息“ Expected https:// ..,但转至http://。”
发生这种情况的原因是httpServletReuqest.getRequestURI()
返回http而不是https。
问题是,当我们的网站在Cloud Run中以https部署时,为什么getRequestURI返回http? 我还记录了nginx标头和X-Forwarded-Proto = https。
解决方法
由于是基于@EmilGi和@GuillaumeBlaquiere的评论而发布为社区Wiki。
正如您在此documentation中所看到的:
Cloud Run将所有HTTP请求重定向到HTTPS,但在TLS到达您的Web服务之前将其终止。如果您的服务生成的Web资源引用了其他Web资源,但这些URL具有不安全的URL(http://),则您的页面可能会受到内容混合警告或错误的提示。
并且您无法关闭此限制,因为Cloud Run部署在负责TLS通信的GFE(Google前端)之后。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。