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();
}
}
}
Nein, diese Konfiguration ignoriert meinen benutzerdefinierten Filter, indem er ihn einfach nicht registriert. Ich brauche auch keine Login-Seite. – Journeycorner