Deaktivieren Sie die Basic-Authentifizierung während der Verwendung von Spring Security Java Konfiguration
Ich versuche, eine sichere web-Anwendung mit Spring Security java-Konfiguration.
Dies ist, wie die Konfiguration aussieht:-
@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);
}
}
Bemerken, dass ich explizit deaktiviert die HTTP-Basic-Authentifizierung über:-
.httpBasic().disable()
Ich bin noch immer HTTP Authenticaton prompt box beim Zugriff auf eine url gesichert. Warum?
Bitte helfen Sie mir dieses Problem zu beheben.
Ich möchte nur zum Rendern der Standard-login-Formular, das kommt gebündelt.
Spring-Boot-Starter-Version : 1.1.5
Spring Security Version : 3.2.5
Dank
- hinzufügen
security.basic.enabled=false
zu Ihremapplication.properties
. Auch sollten Sie nicht anrufensuper.configure
von deiner überschriebenen Methode. - Dass es behoben. Aber warum war es nicht deaktiviert, wenn ich explizit deaktiviert java-config?
- Sie können mehrere
WebSecurityConfigurer
jedem Beitrag-Konfiguration die gesamte Konfiguration. Es könnte sehr gut sein, dass Sie eine rest-Teil Ihrer website ist geschützt durch das basic auth ist und der normalen Website mit einem Formular. Man konnte 2WebSecurityConfigurer
eine für rest-und eine für die form. Vielleicht möchten Sie auch zur Kasse docs.Frühling.io/spring-boot/docs/current/Referenz/html/... (Spring-Boot-Referenz, Abschnitt Sicherheit). - Sie brauchen nicht zu nennen, die ursprüngliche Implementierung in der *Configurer Klassen, die Sie gerade implementieren Sie alle Methoden der Schnittstelle mit einem leeren Körper, so können Sie einfach überschreiben, was Sie verwenden möchten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst Berufung
super.configure(http);
überschreiben Ihre ganze Konfiguration, die Sie haben, bevor, dass.Versuchen Sie dies:
In den Fall, Sie nutzen Spring Boot, die Dokumentation Staaten:
Also, wenn Sie wollen, um vollständig anpassen, selbst das könnte eine option sein.
Nur um es klar... Sie müssen nur @EnableWebSecurity annotation auf Ihrem Haupt-application-Klasse oder application-configuration-Klasse.
Können Sie deaktivieren, formLogin durch die HttpSecurity Instanz wie folgt:
Führt dies zu empfangen 403 Http-Fehler beim Zugriff auf gesicherte Ressourcen -
Anonyme option für mich gearbeitet. Mein code wie
Folgendes bei mir funktioniert: