Corgi [spring] 스프링 시큐리티에서 authorizeHttpRequests().requestMatchers() 메서드의 활용 방법
본문 바로가기
코딩/스프링(Spring)

[spring] 스프링 시큐리티에서 authorizeHttpRequests().requestMatchers() 메서드의 활용 방법

by 짱아아빠 2023. 6. 14.
반응형


안녕하세요! 이번에는 스프링 시큐리티에서 `authorizeHttpRequests().requestMatchers()` 메서드를 활용하는 방법에 대해 알아보겠습니다. 이 메서드는 스프링 시큐리티의 구성(configure) 메서드에서 사용되며, HTTP 요청에 대한 인가 설정을 구체적으로 지정할 수 있도록 도와줍니다.

1. `authorizeHttpRequests()` 메서드의 역할
   - `authorizeHttpRequests()` 메서드는 스프링 시큐리티의 구성 메서드 내에서 사용되는 메서드로, HTTP 요청에 대한 인가 설정을 구성하는 데 사용됩니다.
   - 이 메서드를 사용하여 다양한 인가 규칙을 정의할 수 있으며, 경로별로 다른 권한 설정이 가능합니다.

2. `requestMatchers()` 메서드의 역할
   - `requestMatchers()` 메서드는 `authorizeHttpRequests()` 메서드와 함께 사용되어 특정한 HTTP 요청 매처(Request Matcher)를 적용할 수 있게 해줍니다.
   - 매처를 지정하여 특정 경로나 URL 패턴에 대한 인가 규칙을 설정할 수 있습니다.
   - 예를 들어, `.requestMatchers(new AntPathRequestMatcher("/admin/**"))`와 같이 사용하면 "/admin"으로 시작하는 경로에 대한 인가 설정을 지정할 수 있습니다.

 

반응형


3. `.permitAll()` 메서드의 역할
   - `.permitAll()` 메서드는 해당 경로에 대한 모든 요청을 인가합니다. 즉, 인증된 사용자나 권한에 상관없이 모든 사용자가 접근할 수 있게 허용합니다.
   - `.permitAll()`은 특정 경로를 예외로 처리하고자 할 때 주로 사용됩니다. 예를 들어, 로그인 페이지나 정적 리소스에 대한 접근을 허용할 때 유용합니다.

4. 사용 예시
   - 예시로, 모든 경로에 대해 인증된 사용자만 접근 가능하도록 설정하고, "/public" 경로는 모든 사용자에게 허용하는 설정을 구성하려면 다음과 같이 사용할 수 있습니다:

   protected void configure(HttpSecurity http) throws Exception {
         http.authorizeRequests()
             .requestMatchers(new AntPathRequestMatcher("/public/**")).permitAll()
             .anyRequest().authenticated();
     }


위의 내용을 참고하여 스프링 시큐리티에서 `authorizeHttpRequests().requestMatchers()` 메서드의 활용 방법을 구현해보세요. 이를 통해 HTTP 요청에 대한 인가 설정을 보다 세밀하게 구성할 수 있으며, 보안을 강화한 웹 애플리케이션을 개발할 수 있습니다.

반응형

댓글