728x90
스프링 시큐리티는 기본적으로 /login 에서 기본 로그인 화면을 지원한다. 그래서 난 SecurityFilterChain을 구성할 때
http.httpBasic(AbstractHttpConfigurer::disable)
.csrf(AbstractHttpConfigurer::disable)
.userDetailsService(userDetailService)
.authorizeHttpRequests(auth -> auth
.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
.requestMatchers("/login").permitAll() // 단순화된 매처로 수정
.requestMatchers("/auth/**").permitAll()
.anyRequest().authenticated()
)
이렇게 Http를 구성했는데 계속 /login 창으로 넘어가지 못하는 문제가 발생했다. 그래서 몇시간을 고생했는데 formLogin에서 제공하는 loginProcessingUrl을 login 링크로 지정해주니 정상적으로 확인되었다.
http.httpBasic(AbstractHttpConfigurer::disable)
.csrf(AbstractHttpConfigurer::disable)
.userDetailsService(userDetailService)
.authorizeHttpRequests(auth -> auth
.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
.requestMatchers("/login").permitAll() // 단순화된 매처로 수정
.requestMatchers("/auth/**").permitAll()
.anyRequest().authenticated()
)
.formLogin(form -> form
.loginProcessingUrl("/login")
.defaultSuccessUrl("/")
.permitAll()
);
아무래도 여기서 허용해서 나올 수 있는 링크는 현재 컨트롤러단에서 구현되어 있어야 하는 것 같다. 위 loginProcessingUrl은 무조건 저 링크로 보내는 역할을 수행해서 이게 되는게 아닐까 생각한다.
이렇게 삽질하며 또 하나의 지식이 늘었다.
'Dev > Spring Boot' 카테고리의 다른 글
[Spring Security] 수동 로그인 구현하기 (0) | 2024.10.29 |
---|---|
[JPA] 인덱싱을 통한 SELECT 성능 향상 (0) | 2024.10.22 |
Java로 문자열 xml 파일 파싱 (0) | 2024.09.20 |
Spring Boot JPA - BufferedReader로 CSV 파일을 읽어 DB에 저장하기 (1) | 2024.09.20 |
Spring Boot - RestClient 로 공공데이터 얻어오기 (0) | 2024.08.20 |