[SPRING] 경로의 시작 부분과 일치하는 antMatcher
SPRING경로의 시작 부분과 일치하는 antMatcher
나는 인증에 사용될 REST 서비스를 가지고있다. 인증 엔드 포인트는 /api/v.1/authentication과 유사합니다. API 버전은 업데이트 된 버전을 반영하도록 변경할 수있는 변수입니다. 하나의 예제는 /api/v.2/authentication입니다. AntMatcher를 사용하여이 두 가지 문제를 처리 할 수 있기 때문에 .antMatchers (HttpMethod.POST, "** / authenticate"). permitAll ()을 사용하여 ** 엔드 포인트의 시작 부분과 일치 시키지만 작동하지 않습니다. . 아래 전체 설정.
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.csrf().disable()
.authorizeRequests()
.antMatchers(HttpMethod.POST, "**/authenticate").permitAll()
.antMatchers(HttpMethod.GET, "**/get-public-key").permitAll()
.and()
.authorizeRequests()
.antMatchers(HttpMethod.OPTIONS, "/**").permitAll()
.anyRequest().authenticated();
}
이 문제를 어떻게 해결할 수 있을지 제안 해 주시겠습니까?
해결법
-
==============================
1.당신은 절대적인 패턴을 사용해야합니다, AntPathMatcher를보십시오 :
당신은 절대적인 패턴을 사용해야합니다, AntPathMatcher를보십시오 :
수정 및 단순화 된 구성 :
@Override protected void configure(HttpSecurity http) throws Exception { http .sessionManagement() .sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .csrf().disable() .authorizeRequests() .antMatchers(HttpMethod.POST, "/**/authenticate").permitAll() .antMatchers(HttpMethod.GET, "/**/get-public-key").permitAll() .antMatchers(HttpMethod.OPTIONS, "/**").permitAll() .anyRequest().authenticated(); }
from https://stackoverflow.com/questions/43704389/antmatchers-that-matches-any-beginning-of-path by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring @Transactional이 작동하지 않습니다. (0) | 2019.02.24 |
---|---|
[SPRING] JSTL 및 Spring : 인수를 사용하여 메소드 액세스 (0) | 2019.02.24 |
[SPRING] Spring 통합 - 대기열 / 폴러는 아무런 조치없이 스레드 풀을 다 소모하는 것 같습니다. (0) | 2019.02.24 |
[SPRING] ajax spring mvc에서 ModelAndView 리턴하기 (0) | 2019.02.24 |
[SPRING] hibernate-validator의 예외. 상자의 예외는 java.lang.NoClassDefFoundError입니다 : ConfigurationImpl (0) | 2019.02.24 |