具有多个路径的spring security http antMatcher

时间:2014-08-10 23:57:17

标签: spring spring-security

我有以下spring security 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配置将此规则应用于多个路径的正确方法?

2 个答案:

答案 0 :(得分:39)

尝试以下方法:

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

答案 1 :(得分:-2)

尝试:

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