2016-04-30 23 views
2

Wie kann ich Spring Security für die Verwendung eines benutzerdefinierten Filters für alle Anforderungen außer denen, die ich in der gleichen Ebene, z. "/ login" überspringt meinen Filter, aber alles andere "/ **" geht durch den Filter.Spring Security-Ignorierpfad für Filter

Als Workaround könnte ich verschiedene Präfixe verwenden, "/ gesichert/**" vs "/ Whitelist/**" oder ignorieren Sie die Whitelists im Filter, aber das scheint keine saubere Lösung sein.

Ich habe bereits versucht, zwei Konfigurationen mit @Order (1 und 2) einzurichten, aber es hat nicht funktioniert.

@EnableWebSecurity 
public class SpringSecurityConfig { 

    @Configuration 
    @Order(1) 
    @EnableGlobalMethodSecurity(securedEnabled = true) 
    public static class JwsSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter { 

     @Autowired 
     private StatelessAuthenticationFilter statelessAuthenticationFilter; 

     @Override 
     public void configure(WebSecurity web) throws Exception { 
      web 
        .ignoring() 
        .antMatchers("/login"); 
     } 

     @Override 
     protected void configure(HttpSecurity http) throws Exception { 
      http 
        .authorizeRequests() 
        .antMatchers("/**").authenticated() 
        .anyRequest().authenticated() 
        .and().addFilterBefore(statelessAuthenticationFilter, UsernamePasswordAuthenticationFilter.class); 
     } 

     @Override 
     @Bean 
     public AuthenticationManager authenticationManagerBean() throws Exception { 
      return authenticationManager(); 
     } 
    } 
} 

Antwort

-1

Nicht sicher, ob dies ist, was Sie erreichen wollen, aber Sie können alle Anfragen erklären zu Authentifizierung erforderlich ist und dann Login-Seite angeben, die zugänglich sein sollte:

protected void configure(HttpSecurity http) throws Exception { 
    http 
     .authorizeRequests() 
      .anyRequest().authenticated() 
      .and() 
     .formLogin() 
      .loginPage("/login") 
      .permitAll();   
} 

Es ist in der Dokumentation ist: http://docs.spring.io/spring-security/site/docs/current/reference/html/jc.html#jc-form

+0

Nein, diese Konfiguration ignoriert meinen benutzerdefinierten Filter, indem er ihn einfach nicht registriert. Ich brauche auch keine Login-Seite. – Journeycorner

Verwandte Themen