我们正在使用Auth0集成为我们的Spring Boot应用程序提供身份验证。 在Docker谷歌云运行中部署了一个应用程序。
但是当我尝试交换令牌时,我收到来自auth0的错误消息“ Expected https:// ..,但转至http://。”
发生这种情况的原因是httpServletReuqest.getRequestURI()
返回http而不是https。
问题是,当我们的网站在Cloud Run中以https部署时,为什么getRequestURI返回http? 我还记录了nginx标头和X-Forwarded-Proto = https。
答案 0 :(得分:1)
由于是基于@EmilGi和@GuillaumeBlaquiere的评论而发布为社区Wiki。
正如您在此documentation中所看到的:
Cloud Run将所有HTTP请求重定向到HTTPS,但在TLS到达您的Web服务之前将其终止。如果您的服务生成的Web资源引用了其他Web资源,但这些URL具有不安全的URL(http://),则您的页面可能会受到内容混合警告或错误的提示。
并且您无法关闭此限制,因为Cloud Run部署在负责TLS通信的GFE(Google前端)之后。