spring-boot3 重定向(状态码:302)问题(无论访问那个接口都会被重定向到 【/login】登录界面)

问题描述

今天使用spring-boot做了热重载以后出现了一个问题,我无论访问那个接口都会导致接口被重定向到下面这个界面 地址是 :“localhost:/login”
spring-boot3 重定向(状态码:302)问题(无论访问那个接口都会被重定向到 【/login】登录界面)_第1张图片

chatGPT解决方式

问了一下 chatGPT,下面是他给我的答案(没能解决):


如果您在Spring Boot项目中使用了Spring Security进行身份验证,并且未进行正确的配置,则可能会出现重定向到"/login"路径的问题。这通常是因为Spring Security默认情况下将未经身份验证的请求重定向到"/login"路径。要解决这个问题,您可以在您的Spring Security配置中添加以下代码:

http
    .authorizeRequests()
        .antMatchers("/login").permitAll()
        .anyRequest().authenticated()
        .and()
    .formLogin()
        .loginPage("/custom-login-page")
        .permitAll();

其中,"/login"是默认的登录页面路径,您可以将其替换为您自己的登录页面路径。另外,如果您想要禁用重定向,您可以在配置中添加以下代码:

http
    .authorizeRequests()
        .antMatchers("/login").permitAll()
        .anyRequest().authenticated()
        .and()
    .formLogin()
        .loginPage("/custom-login-page")
        .permitAll()
        .successHandler((request, response, authentication) -> {})
        .failureHandler((request, response, exception) -> {});

这将使用空的成功和失败处理程序来禁用重定向。


成功解决的方式

1、删除security相关的包

比如:


    org.springframework.security
    spring-security-config
    5.5.0


    org.springframework.security
    spring-security-web
    5.5.0


2、启动类的注释上添加

@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})

@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
public class XXApplication {
    public static void main(String[] args) {
        SpringApplication.run(XXApplication.class, args);
    }

}

添加完毕后重启一下程序,就可以了,因为之前没遇到过,因此记录一下。

你可能感兴趣的:(java,spring,boot)