TIL

(2024-05-29) 스프링 개인과제

o_coding 2024. 5. 30. 16:01
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception{
http.csrf((csrf) -> csrf.disable());
http.authorizeHttpRequests((authorizationRequests) ->
authorizationRequests
.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll() //resource 접근 허용
.requestMatchers("/api/user/**").permitAll() // api/user 로 시작하는 요청 모두 접근 허가
.anyRequest().authenticated() //그외 모든 요청 인증 처리
);
// 로그인 사용
http.formLogin((formLogin) ->
formLogin
// 로그인 View 제공 (GET /api/user/login-page)
.loginPage("/api/user/login-page")
// 로그인 처리 (POST /api/user/login)
.loginProcessingUrl("/api/user/login")
// 로그인 처리 후 성공 시 URL
.defaultSuccessUrl("/")
// 로그인 처리 후 실패 시 URL
.failureUrl("/api/user/login-page?error")
.permitAll()
);

return http.build();
}

기존 수업에 서 쓴 코드를 사용했다. 수업을 진행할 때는 붙여넣기하며 사용해서 이해를 다 하지 못하고 넘어갔는대 직접 타이핑하고 검색해보면서 해보았다. requestMacthers를 사용해서 인증 허가 url 을 지정했고 formLogin을 커스텀으로 사용하여 default 말고 이미 있는 페이지를 보여주도록 했다.