web-dev-qa-db-fra.com

sécurité du printemps http antMatcher avec plusieurs chemins

J'ai la sécurité de printemps suivante Java (avec la version 3.2.4) qui fonctionne:

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

Cependant, je voudrais appliquer cette règle à 2 chemins ("/ lti1p/" et ("/ lti2p /"). Je ne peux pas simplement remplacer antMatcher par antMatchers (l'objet HttpSecurity ne permet pas ) et quand j'essaye quelque chose comme ça, il n'applique plus correctement la règle.

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

J'ai essayé un certain nombre de variantes sans succès. Quelqu'un connaît-il la bonne façon d'appliquer cette règle à l'aide de la configuration Java sur plusieurs chemins d'accès)?

21
Aaron Zeckoski

Essayez l'approche suivante:

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