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