programing

spring security httpantMatcher(경로가 여러 개인 경우)

powerit 2023. 8. 11. 22:42
반응형

spring security httpantMatcher(경로가 여러 개인 경우)

다음과 같은 스프링 보안 Java 구성 규칙(버전 3.2.4 포함)이 있습니다.

http.antMatcher("/lti1p/**")
    .addFilterBefore(ltioAuthProviderProcessingFilter, UsernamePasswordAuthenticationFilter.class)
    .authorizeRequests().anyRequest().hasRole("LTI")
    .and().csrf().disable();

그러나 이 규칙을 2개의 경로("/lti1p/" 및 ""/lti2p/")에 적용하고 싶습니다.단순히 antMatcher를 antMatcher로 대체할 수 없으며(HttpSecurity 개체가 허용하지 않음), 이러한 작업을 시도하면 규칙이 더 이상 올바르게 적용되지 않습니다.

http
    .addFilterBefore(ltioAuthProviderProcessingFilter, UsernamePasswordAuthenticationFilter.class)
    .authorizeRequests()
    .antMatchers("/lti1p/**","/lti2p/**").hasRole("LTI")
    .and().csrf().disable();

저는 이것의 많은 변형을 시도했지만 실패했습니다.Java 구성을 사용하여 이 규칙을 여러 경로에 적용하는 올바른 방법을 아는 사람이 있습니까?

다음 방법을 사용해 보십시오.

http 
  .requestMatchers()
       .antMatchers("/lti1p/**","/lti2p/**")
       .and()
  .addFilterBefore(ltioAuthProviderProcessingFilter, UsernamePasswordAuthenticationFilter.class)
  .authorizeRequests().anyRequest().hasRole("LTI")
  .and().csrf().disable();

다음을 수행합니다.

 .antMatchers("/admin/**").hasRole("admin")
            .antMatchers("/superadmin/**").hasRole("superadmin")
            .antMatchers("/billingmanager/**").hasAnyRole ( "billingmanager","admin")
            .antMatchers("/salesman/**").hasAnyRole ( "billingmanager","admin" ,"salesman")
            .antMatchers("/getjwttoken", "/healthcheck/**", "/registerultimateuser", "/test").permitAll()

//

시도:

.antMatchers("/lti1p/**").hasRole("LTI")
.antMatchers("/lti2p/**").hasRole("LTI")

언급URL : https://stackoverflow.com/questions/25234164/spring-security-http-antmatcher-with-multiple-paths

반응형