spring-boot-starter-securityの依存関係を追加すると、ページ表示できなくなる
Q&A
Closed
解決したいこと
Spring bootでWebアプリを作っています。
ユーザーのログインページを作りましたが、
spring-boot-starter-securityの依存関係を追加すると、HTTPリクエストエラーになり、ログインページを表示できません。
依存関係を追加しないと、正常に画面表示できます。
依存関係を追加した状態で、正常に画面表示できるようにしたいです。
発生している問題・エラー
ログインページに遷移しようとすると、以下のエラーになります。
This page isn’t working
localhost redirected you too many times.
Try deleting your cookies.
ERR_TOO_MANY_REDIRECTS
開発者ツールでリクエストを確認すると、大量のリクエストが送られていて、全て302エラーになっています。
該当するソースコード
以下のように依存関係を追加しています。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
自分で試したこと
SecurityConfigクラスを作成し、
/loginと/registerのURLは認証されていなくてもアクセスできるように設定しているのですが、正常に画面遷移できません。
package com.reading.tracker.readingtracker.config;
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.web.SecurityFilterChain;
@Configuration
@EnableWebSecurity
public class SecurityConfig{
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.csrf(csrf -> csrf.disable())
.authorizeHttpRequests(auth -> auth
.requestMatchers("/register", "/login").permitAll()
.anyRequest().authenticated()
)
.formLogin(form -> form
.loginPage("/login").permitAll()
.defaultSuccessUrl("/register")
)
.logout(logout -> logout
.permitAll()
.logoutSuccessUrl("/login")
);
return http.build();
}
}