Je souhaite utiliser Spring Security pour l'authentification JWT. Mais cela vient avec l'authentification par défaut. J'essaie de le désactiver, mais l'ancienne approche, qui consistait à le désactiver via application.properties
, est obsolète en 2.0.
C'est ce que j'ai essayé:
@Configuration
public class StackWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.httpBasic().disable();
// http.authorizeRequests().anyRequest().permitAll(); // Also doesn't work.
}
}
Comment puis-je simplement désactiver la sécurité de base?
METTRE À JOUR
Il serait peut-être bon de savoir que je n’utilise pas web mvc mais web flux.
Selon les nouvelles mises à jour de Spring 2.0, si Spring Security est sur le chemin de classe, Spring Boot ajoutera @ EnableWebSecurity.Pour ajouter des entrées à l'application.properties ne fonctionnera pas (c'est-à-dire qu'il ne sera plus personnalisable de cette façon). Pour plus d'informations, visitez le site officiel Modifications de la sécurité dans Spring Boot 2.0
Bien que je ne sois pas sûr de vos besoins exactement, je pourrais penser à une solution de contournement comme celle-ci: -
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter{
@Override
protected void configure(HttpSecurity http) throws Exception{
http.authorizeRequests().antMatchers("/").permitAll();
}
}
J'espère que cela t'aides.
Cela a fonctionné pour moi:
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable().authorizeRequests().anyRequest().permitAll();
}
}
Selon la documentation de référence , la configuration de la sécurité permettant d'autoriser toutes les demandes avec WebFlux devrait ressembler à ceci:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.web.server.ServerHttpSecurity;
import org.springframework.security.web.server.SecurityWebFilterChain;
@Configuration
public class SecurityConfig {
@Bean
public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
http.authorizeExchange().anyExchange().permitAll();
return http.build();
}
}
Vous pouvez ajouter/modifier les éléments suivants à votre classe d’application:
@SpringBootApplication(exclude = { SecurityAutoConfiguration.class })
public class MyApplication {
}
Je pense que vous cherchez à remplacer le point d'entrée d'authentification par défaut qui est défini sur BasicAuthenticationEntryPoint .
Ce point d’entrée ajoute le
"Authentification WWW": "Domaine de base = ..."
en-tête qui indique à votre navigateur d'utiliser l'authentification de base.