为了简化我的故事,这里显示错误消息(在chrome控制台中):
混合内容:“https://example.com/#/”页面是通过HTTPS加载的,但是请求了一个不安全的XMLHttpRequest端点“http://example.com/login”。此请求已被阻止;内容必须通过HTTPS提供。
为了进一步调查,我注意到,在页面加载事件中,我们确实有/api/account
安全端点的请求,并且由于首次访问者通常不会通过身份验证,因此此请求将被重定向到{{ 1}}路径(在某个地方?)。但是通过HTTP而不是HTTPS,在我的情况下这将是欲望行为。
我怀疑这是因为我在反向代理后面使用我的JHipster应用程序而我的反向代理负责通过HTTPS提供请求。换句话说,我的JHipster应用程序不知道我们正在使用HTTPS。
我也尝试调试我的客户端代码以查看是否可以覆盖此行为,但我注意到此重定向不是从/login
或auth-expired.interceptor.ts
触发的。
更可能这种重定向是从我的服务器端代码发生的,也许可以通过更改spring安全配置来覆盖?
谢谢JHipsters! : - )
答案 0 :(得分:3)
在server.use-forward-headers: true
中设置application.yml
。确保您的代理服务器还配置为添加X-Forwarded-For
和X-Forwarded-Proto
标头。对于Nginx,您可以在proxy_set_header X-Forwarded-Proto $scheme;
部分添加location
。这将修复从代理标头构建的302重定向。
Spring Boot docs for running behind a proxy server中对此进行了描述,还有一个相关的Github issue。