问题描述
今天使用spring-boot做了热重载以后出现了一个问题,我无论访问那个接口都会导致接口被重定向到下面这个界面 地址是 :“localhost:/login”
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相关的包
比如:
<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-config</artifactId><version>5.5.0</version>
</dependency>
<dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-web</artifactId><version>5.5.0</version>
</dependency>
2、添加下面的注解到启动类上方
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
public class XXApplication {public static void main(String[] args) {SpringApplication.run(XXApplication.class, args);}}
添加完毕后重启一下程序,就可以了,因为之前没遇到过,因此记录一下。