https协议请求后端(spring security框架)时会重定向为http,添加X-Forwarded-Proto

https协议请求后端(spring security框架)时会重定向为http,添加X-Forwarded-Proto

问题描述

网站使用了nginx做反向代理,设置了所有http请求全部跳转为https。浏览器和nginx之间走的是https,nginx到tomcat走的是http。网站服务端使用的是springboot、springsecurity,认证授权使用的springsecurity。网站首页地址是/,登录页地址是/login。在首次打开网站地址https://aaa.com/时,框架拦截自动跳转至http://aaa.com/login(不是https//aaa.com/login),而nginx又配置了http自动跳转至https,这样导致的情况是,我本来访问的是https://aaa.com/,结果发起了3次请求:https://aaa.com/ —> http://aaa.com/login —> https://aaa.com/login。

解决办法

  1. 在nginx服务器中,加入
proxy_set_header	X-Forwarded-Proto $scheme;
  1. 在项目yml文件中,加入
server:
  tomcat:
    remoteip:
      protocol-header: X-Forwarded-Proto

原因分析

X-Forwarded-Proto(XFP)报头是用于识别协议(HTTP 或
HTTPS),其中使用的客户端连接到代理或负载平衡器一个事实上的标准报头。要确定客户端和负载均衡器之间使用的协议,X-Forwarded-Proto可以使用请求标头

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值