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


    一、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框架!所以判断本次出现问题,是由于框架升级以致规则发生变化所致!

    1. @SpringBootApplication(exclude = {
    2. SecurityAutoConfiguration.class
    3. })

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

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

    1. @SpringBootApplication(exclude = {
    2. SecurityAutoConfiguration.class,
    3. ManagementWebSecurityAutoConfiguration.class
    4. })

  • 相关阅读:
    spring MVC
    Java计算机毕业设计电影评分网站源码+系统+数据库+lw文档
    Java 协程终于来了,线程即将是过去式?
    数学术语之源——群同态的“核(kernel)”
    java的IO流+springboot+vue实现服务器的文件上传下载
    数据库连接池之c3p0-0.9.1.2,线上偶发APPARENT DEADLOCK,如何解?
    ls 命令常用选项 以及 ls搭配通配符使用
    使用 ESP32 设计和控制四足蜘蛛机器人之硬件结构设计篇
    python基础知识
    第一个Spring程序
  • 原文地址:https://blog.csdn.net/blue225/article/details/126723673