• 【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. })

  • 相关阅读:
    移动适配:vw/vh
    web项目的开发--第一天
    Pygame中Sprite类的使用2
    数据结构简述,时间、空间复杂度,学习网站推荐
    网站页面SEO优化方案
    c语言入门---操作符
    如何在Debian 10上安装Docker?
    Java架构师缓存性能优化
    MySQL数据库单表查询
    分支预测机制
  • 原文地址:https://blog.csdn.net/blue225/article/details/126723673