【问题】请求莫名重定向至login的问题

发布于:2022-12-27 ⋅ 阅读:(311) ⋅ 点赞:(0)

一、WHAT

        最近在对SpringBoot/SpringCloud框架进行版本升级后,发现部分服务的API接口无法正常访问,莫名奇妙出现blocked:mixed-content问题(API接口是HTTPS)!

        表面上看,这是一个受到浏览器机制限制,HTTPS协议不允许访问HTTP接口的问题!

        但事实上,前端请求是正确的!毋庸置疑,这的的确确是一个HTTPS请求!

        本次升级版本:

  • SpringBoot:2.3.12.RELEASE
  • SpringCloud:Hoxton.SR12

二、WHERE

        首先可以简单排除前端请求问题!接口请求流程如下:

1、nginx

        由于本次未对nginx及相关配置做太多改动,初步判断不太可能是nginx转发的原因!

        分析nginx日志,发现接口发生了302跳转!

2、gateway

        gateway的原因吗?有可能,暂不排除!

3、service

        通过postman发送https请求进行测试,发现请求莫名重定向至 http://xxx:port/login

        由此,可以初步断定,请求在service端发生了重定向!

三、WHY

        从重定向的地址login,可以初步判断,这是由于spring security框架未通过认证而将请求重定向至登录页面!

四、HOW

        由于系统并未使用到Spring Security框架,在本次版本升级之前已经通过排除自动配置类方式禁用了Security框架!所以判断本次出现问题,是由于框架升级以致规则发生变化所致!

@SpringBootApplication(exclude = {
        SecurityAutoConfiguration.class
})

        本次SpringBoot版本升级,相确切来说,2.1.0版本之后,新增的下面这个类会依赖引入Spring Security框架!

         修改启动类,增加排除类ManagementWebSecurityAutoConfiguration,问题解决!!

@SpringBootApplication(exclude = {
        SecurityAutoConfiguration.class,
        ManagementWebSecurityAutoConfiguration.class
})

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到