복붙노트

[SPRING] 다중 경로가있는 봄 보안 http antMatcher

SPRING

다중 경로가있는 봄 보안 http antMatcher

다음 스프링 보안 자바 구성 규칙 (버전 3.2.4 포함)이 작동합니다.

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

그러나이 규칙을 2 개의 경로 ( "/ lti1p /"및 ( "/ lti2p /"))에 적용하고 싶습니다. antMatcher를 antMatchers로 바꿀 수는 없으며 (HttpSecurity 개체가 허용하지 않습니다) 이렇게하면 규칙이 올바르게 적용되지 않습니다.

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

행운이없이 여러 변형을 시도했습니다. 누구든지 여러 경로에 java config를 사용하여이 규칙을 적용하는 올바른 방법을 알고 있습니까?

해결법

  1. ==============================

    1.다음 접근법을 시도하십시오.

    다음 접근법을 시도하십시오.

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

    2.시험:

    시험:

    .antMatchers("/lti1p/**").hasRole("LTI")
    .antMatchers("/lti2p/**").hasRole("LTI")
    
  3. from https://stackoverflow.com/questions/25234164/spring-security-http-antmatcher-with-multiple-paths by cc-by-sa and MIT license