nginx 作为反向代理服务器,导致了在 Spring 中,无法正确获取 scheme 和 host,引起了 redirectUri 无法正确匹配从而认证失败
![代理出错](https://i-blog.csdnimg.cn/blog_migrate/d3c4d12237c6b35d4de692d110cbcc95.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/fdfb99519763e1bf4ebf724f0498361f.png)
配置Nginx
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
配置Tomcat
<Engine >
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="X-Forwarded-For"
protocolHeader="X-Forwarded-Proto"
protocolHeaderHttpsValue="https"/>
</Engine >
配置SpringBoot
server:
tomcat:
remote-ip-header: "X-Forwarded-For"
protocol-header: "X-Forwarded-Proto"
protocol-header-https-value: "https"