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 Ihrem application.properties. Auch sollten Sie nicht anrufen super.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 2 WebSecurityConfigurer 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.
Schreibe einen Kommentar