web-dev-qa-db-fra.com

Spring Boot 2.0 désactiver la sécurité par défaut

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.

Capture d'écran:
 Basic login form

15
Jan Wytze

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.

23
Sen

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();
    }
}
9
davo

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();
    }
}
7
Brian Clozel

Vous pouvez ajouter/modifier les éléments suivants à votre classe d’application:

@SpringBootApplication(exclude = { SecurityAutoConfiguration.class })
public class MyApplication {

}
6
helmy

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.

1
Marvin