部署的Springboot应用访问localhost:8080/index跳转至login页面问题
问题分析与解决建议
这个重定向大概率和Cookies无关,核心诱因是Spring Security的默认安全规则拦截了请求,具体分析如下:
- 先检查项目依赖:如果你的pom.xml(或build.gradle)中引入了
spring-boot-starter-security依赖,Spring Boot会自动启用默认安全配置——所有请求都必须经过用户认证,未认证的请求会被强制重定向到/login登录页面。 - 你的控制器代码本身没有问题,但请求会被Spring Security的拦截器优先处理,导致还没走到控制器就被重定向。
- 若需要开放
/index的匿名访问权限,可以添加Spring Security配置类,示例代码如下:
package com.spirosvatikiotis.fleetapp; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.web.SecurityFilterChain; @Configuration public class SecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests(auth -> auth .requestMatchers("/index").permitAll() // 允许匿名访问/index .anyRequest().authenticated() ) .formLogin(form -> form .permitAll() ); return http.build(); } }
- 关于Cookies的补充:只有当你曾经登录过,但会话Cookie过期或被清除时,会触发重定向,但这是认证失效的表现,不是导致重定向的根本原因。
内容的提问来源于stack exchange,提问作者Spiros Vatikiotis
相关产品推荐
相关产品推荐

