不安全的HttpServletRequest getURI谷歌云

时间:2020-10-09 08:41:48

标签: spring-boot servlets google-cloud-platform google-cloud-run

我们正在使用Auth0集成为我们的Spring Boot应用程序提供身份验证。 在Docker谷歌云运行中部署了一个应用程序。

但是当我尝试交换令牌时,我收到来自auth0的错误消息“ Expected https:// ..,但转至http://。” 发生这种情况的原因是httpServletReuqest.getRequestURI()返回http而不是https。

问题是,当我们的网站在Cloud Run中以https部署时,为什么getRequestURI返回http? 我还记录了nginx标头和X-Forwarded-Proto = https。

1 个答案:

答案 0 :(得分:1)

由于是基于@EmilGi和@GuillaumeBlaquiere的评论而发布为社区Wiki。

正如您在此documentation中所看到的:

Cloud Run将所有HTTP请求重定向到HTTPS,但在TLS到达您的Web服务之前将其终止。如果您的服务生成的Web资源引用了其他Web资源,但这些URL具有不安全的URL(http://),则您的页面可能会受到内容混合警告或错误的提示。

并且您无法关闭此限制,因为Cloud Run部署在负责TLS通信的GFE(Google前端)之后。