작성
·
705
0
@RestController에 매핑된 경로들은 permitAll()이 적용되었지만 @Controller에서 매핑한 경로들은 permitAll() 적용이 되지 않습니다. 자료를 아무리 찾아봐도 알 수 없어서 혹시나 도움이 될까 하는 마음에 글 적어봅니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
김지훈님, @Controller
에 매핑된 경로에 permitAll()
을 적용하시려면 WebSecurityConfigurerAdapter
를 상속받은 설정 클래스에서 configure(HttpSecurity http)
메소드를 오버라이드하여 http.authorizeRequests()
메소드 체인을 사용하셔야 합니다. 예를 들어서, 모든 사용자에게 접근을 허용하고 싶은 특정 경로가 있다면 다음과 같은 설정을 추가하실 수 있습니다.
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/특정경로/**").permitAll()
.anyRequest().authenticated()
// ...
}
이 설정에 따라, /특정경로/**
로 시작하는 모든 경로는 인증을 요구하지 않고 누구나 접근할 수 있게 됩니다. permitAll()
은 특정 요청에 대해서 보안 검사 없이 접근을 허용하도록 설정하는 메소드입니다.
추가적으로, 스프링 부트와 스프링 시큐리티에 대한 더 자세한 정보를 원하시면 Spring Boot Reference Documentation을 참고하시면 도움이 될 것입니다.
제가 사용하는 spring security는 6.1.0 버전으로 WebSecurityConfigurerAdapter는 deprecaterd된 것으로 알고 있습니다. 그래서 WebSecurityConfigurerAdapter가 아닌 SecurityFilterChain으로 사용해야 된다고 API에 기재되어있습니다.