Désactiver l'Authentification de Base lors de l'utilisation de Ressort de Sécurité Java configuration
Je suis en train de sécuriser une application web à l'aide de Printemps de Sécurité java configuration.
C'est la façon dont la configuration a l'air:-
@Configuration
@EnableWebMvcSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
private String googleClientSecret;
@Autowired
private CustomUserService customUserService;
/*
* (non-Javadoc)
*
* @see org.springframework.security.config.annotation.web.configuration.
* WebSecurityConfigurerAdapter
* #configure(org.springframework.security.config
* .annotation.web.builders.HttpSecurity)
*/
@Override
protected void configure(HttpSecurity http) throws Exception {
//@formatter:off
http
.authorizeRequests()
.antMatchers(HttpMethod.GET, "/","/static/**", "/resources/**","/resources/public/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.httpBasic().disable()
.requiresChannel().anyRequest().requiresSecure();
//@formatter:on
super.configure(http);
}
@Override
protected void configure(AuthenticationManagerBuilder auth)
throws Exception {
//@formatter:off
auth
.eraseCredentials(true)
.userDetailsService(customUserService);
//@formatter:on
super.configure(auth);
}
}
Avis que j'ai explicitement désactivé l'authentification HTTP de Base à l'aide de:-
.httpBasic().disable()
Je suis encore en train HTTP Authenticaton zone d'invite lors de l'accès sécurisé de l'url. Pourquoi?
Merci de m'aider à résoudre ce problème.
Je veux juste rendre le défaut formulaire de connexion fourni.
Printemps De Démarrage Starter Version : 1.1.5
Printemps Version De Sécurité : 3.2.5
Grâce
ajouter
Qu'il fixe. Mais pourquoi il n'était pas désactivée lorsque j'ai explicitement désactivé en java config?
Vous pouvez avoir plusieurs
vous n'avez pas besoin d'appeler l'origine de la mise en œuvre dans l' *Configurer les classes, ils ont juste à mettre en œuvre toutes les méthodes de l'interface avec un vide de corps, de sorte que vous pouvez simplement remplacer ce que vous voulez utiliser.
security.basic.enabled=false
à votre application.properties
. Aussi, vous ne devriez pas appeler super.configure
à partir de votre méthode redéfinie.Qu'il fixe. Mais pourquoi il n'était pas désactivée lorsque j'ai explicitement désactivé en java config?
Vous pouvez avoir plusieurs
WebSecurityConfigurer
la contribution de chaque configuration à la configuration globale. Il pourrait très bien être que vous avez une partie de votre site web qui sont protégées par basic auth et le site normal avec un formulaire. Vous pouvez créer 2 WebSecurityConfigurer
un pour le repos et l'autre pour la forme. Vous pouvez également commander docs.printemps.io/spring-boot/docs/current/reference/html/... Printemps de Démarrage de référence, section de la sécurité).vous n'avez pas besoin d'appeler l'origine de la mise en œuvre dans l' *Configurer les classes, ils ont juste à mettre en œuvre toutes les méthodes de l'interface avec un vide de corps, de sorte que vous pouvez simplement remplacer ce que vous voulez utiliser.
OriginalL'auteur Kumar Sambhav | 2014-09-03
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, l'appel de
super.configure(http);
remplace ensemble de votre configuration, vous avez avant que.Essayez plutôt ceci:
Je m'excuse, mais Im nouveau à java, nous utilisons jhipster angulaire avant et java back-end. Où dois-je insérer ce code? Est-ce une passerelle? ou micorservice? ce fichier doit être en train de chercher? Merci
ce qui pourrait être une autre question tout à fait. En général, il dépend de l'endroit où vous faites votre auth, mais avec jhipster, faire auth dans la passerelle est assez typique, c'est donc là que je commencerais. Elle aussi ne serait pas une mauvaise idée de poster votre question (avec un jhipster tag), comme "Comment puis-je désactiver HTTP de Base dans JHipster?"
OriginalL'auteur kazuar
Dans le cas où vous utilisez le Printemps de Démarrage, le la documentation états:
Donc, si vous voulez personnaliser entièrement lui-même qui pourrait être une option.
Juste pour rendre les choses claires... il Vous suffit de mettre @EnableWebSecurity annotation sur votre classe principale de l'application ou de l'application de configuration de la classe.
OriginalL'auteur Marcel Overdijk
Vous pouvez désactiver la formLogin par le biais de la HttpSecurity instance comme suit:
Cela conduira recevoir Http 403 erreur lorsque vous essayez d'accéder à toutes les ressources sécurisées
OriginalL'auteur Moustafa Essa
anonyme option a fonctionné pour moi
http.csrf().disable().en-têtes (headers).frameOptions().sameOrigin().et(). authorizeRequests().anyRequest().anonyme().et().httpBasic().disable();
OriginalL'auteur vara
La suite fonctionné pour moi:
OriginalL'auteur Alexander K