无限重定向

问题描述 投票:0回答:1

pom

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.5</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

配置

package com.example.demo.configuration;

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.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
@EnableWebSecurity
public class ParamConfig {
    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
                .authorizeHttpRequests((requests) -> requests
                        .requestMatchers("/demo/{id}")
                )
                .formLogin((form) -> form
                        .loginPage("/login")
                        .permitAll()
                )
                .logout((logout) -> logout.permitAll());

        return http.build();
    }

    @Bean
    public UserDetailsService userDetailsService() {
        UserDetails user =
                User.withDefaultPasswordEncoder()
                        .username("user")
                        .password("password")
                        .roles("USER")
                        .build();

        return new InMemoryUserDetailsManager(user);
    }
}

控制器

@RestController
public class DemoController {

    @GetMapping("/demo/{id}")
    public String getDemo(@PathVariable String id) {

        return format("get %s", id);
    }

    @PostMapping("/demo/{id}")
    public String postDemo(@PathVariable String id) {
        return format("post %s", id);
    }

}

堆栈跟踪

https://dpaste.org/NFSgL

问题

enter image description here

似乎存在重定向循环。

你能帮我理解为什么会发生这种无限重定向以及如何应对它吗?

spring spring-boot spring-security
1个回答
0
投票

最有可能的是

/login
url 有问题,请在控制器中映射该 url。由于端点不可用或
/login
页面

中出现某些错误,它可能会抛出一些错误
© www.soinside.com 2019 - 2024. All rights reserved.