스프링 security부분에 대해서 공부하고 있는데 문득 mvcMathers는 어떤 역할을 하는 메서드인지 궁금해서 찾아보고 정리하게 되었다.
mvcMatcher란
'mvcMatchers'는 스프링 MVC에서 URL 패턴에 대한 매칭을 지정하기 위해 사용되는 메서드이다. 이 메서드는 주어진 패턴과 요청 URL을 비교하여 매칭 여부를 결정한다. 스프링 시큐리티 모듈에서 사용되고 특정 URL 패턴에 대한 접근 권한을 설정하는데 활용된다.
Ant 스타일 패턴
mvcMatcher에 대해서 알기위해선 일단 Ant 스타일 패턴에 대해서 알아야 된다.
Ant 스타일 패턴은 경로 매칭에 사용되는 패턴 규칙 중 하나로, 주로 스프링 프레임워크와 관련된 기술에서 사용된다. 이 패턴은 경로나 파일명과 같은 문자열을 비교하고 매칭 여부를 결정하는데 활용된다.
- '?' : 한 글자와 매칭
- '*' : 여러 글자와 매칭(단일 경로 내에서만 유효)
- '**' : 임의의 경로와 매칭( 단일 경로나 여러 경로 모두 유효)
예를 들어, "/api/users/{id}"와 같은 URL 패턴을 "/api/users/*" 로 매칭시킬 수 있다.
예시
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.mvcMatchers("/public/**").permitAll() // "/public"으로 시작하는 URL은 누구나 접근 가능
.mvcMatchers("/admin/**").hasRole("ADMIN") // "/admin"으로 시작하는 URL은 ADMIN 역할을 가진 사용자만 접근 가능
.anyRequest().authenticated() // 그 외의 요청은 인증된 사용자만 접근 가능
.and().formLogin(); // 로그인 폼 사용
}
}
이렇게 'mvcMatchers'를 사용해서 패턴을 지정하고 'permitAll()' 또는 'hasRole()' 등과 함께 접근 권한을 설정한다.
이렇게 특정 URL에 대한 인증 및 권한 제어를 유연하게 구성할 수 있다.
스프링 security부분에 대해서 공부하고 있는데 문득 mvcMathers는 어떤 역할을 하는 메서드인지 궁금해서 찾아보고 정리하게 되었다.
mvcMatcher란
'mvcMatchers'는 스프링 MVC에서 URL 패턴에 대한 매칭을 지정하기 위해 사용되는 메서드이다. 이 메서드는 주어진 패턴과 요청 URL을 비교하여 매칭 여부를 결정한다. 스프링 시큐리티 모듈에서 사용되고 특정 URL 패턴에 대한 접근 권한을 설정하는데 활용된다.
Ant 스타일 패턴
mvcMatcher에 대해서 알기위해선 일단 Ant 스타일 패턴에 대해서 알아야 된다.
Ant 스타일 패턴은 경로 매칭에 사용되는 패턴 규칙 중 하나로, 주로 스프링 프레임워크와 관련된 기술에서 사용된다. 이 패턴은 경로나 파일명과 같은 문자열을 비교하고 매칭 여부를 결정하는데 활용된다.
- '?' : 한 글자와 매칭
- '*' : 여러 글자와 매칭(단일 경로 내에서만 유효)
- '**' : 임의의 경로와 매칭( 단일 경로나 여러 경로 모두 유효)
예를 들어, "/api/users/{id}"와 같은 URL 패턴을 "/api/users/*" 로 매칭시킬 수 있다.
예시
@Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .mvcMatchers("/public/**").permitAll() // "/public"으로 시작하는 URL은 누구나 접근 가능 .mvcMatchers("/admin/**").hasRole("ADMIN") // "/admin"으로 시작하는 URL은 ADMIN 역할을 가진 사용자만 접근 가능 .anyRequest().authenticated() // 그 외의 요청은 인증된 사용자만 접근 가능 .and().formLogin(); // 로그인 폼 사용 } }
이렇게 'mvcMatchers'를 사용해서 패턴을 지정하고 'permitAll()' 또는 'hasRole()' 등과 함께 접근 권한을 설정한다.
이렇게 특정 URL에 대한 인증 및 권한 제어를 유연하게 구성할 수 있다.