autenticação básica da configuração de inicialização por mola em um único caminho de aplicativo da web?

Estou tentando configurar um único caminho (/ basic) no meu aplicativo baseado em MVC spring-boot spring para ser protegido por autenticação básica. Vou apenas configurar isso usando meus próprios parâmetros de configuração personalizados, para que o nome de usuário e a senha sejam simplesmente "admin" e "admin".

Atualmente, isso funciona para o caminho / basic (sou solicitado e posso fazer login corretamente). O problema é que o logout não funciona (e não sei por que) e também outros caminhos (como / outros mostrados) estão sendo solicitados para credenciais de autenticação básica (antes de sempre serem negadas).

static class MyApplicationSecurity extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().antMatchers("/open").permitAll();
        http.authorizeRequests().antMatchers("/other").denyAll(); // Block it for now
         http.authorizeRequests().antMatchers("/basic").authenticated().and().httpBasic().and().logout().logoutUrl("/basic/logout").invalidateHttpSession(true).logoutSuccessUrl("/");
    }
}

Eu esperava que / other sempre fosse negado, mas não entendo por que a autenticação básica está chegando. / open funciona como esperado. Também não entendo por que / basic / logout não me desconecta (também não gera mensagens de erro). Eu tenho um pouco de código simples como espaço reservado para o ponto de extremidade de logout, mas se não o tenho, recebo um 404. A exibição "home" é a raiz do meu aplicativo da web, então só quero enviar o usuário para lá após o logout.

@RequestMapping("/logout")
public ModelAndView logout() {
    // should be handled by spring security
    return new ModelAndView("home");
}

ATUALIZAÇÃO: Aqui está a solução que parecia funcionar no final (exceto a parte de logout, ainda não funcionando):

@Configuration
@Order(1) // HIGHEST
public static class OAuthSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.antMatcher("/oauth").authorizeRequests().anyRequest().denyAll();
    }
}

@Configuration
public static class BasicAuthConfigurationAdapter extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.antMatcher("/basic").authorizeRequests().anyRequest().authenticated().and().httpBasic();
        http.logout().permitAll().logoutUrl("/logout").logoutSuccessUrl("/").invalidateHttpSession(true);
        //.and().logout().logoutUrl("/basic/logout").invalidateHttpSession(true).logoutSuccessUrl("/");
    }
}

questionAnswers(1)

yourAnswerToTheQuestion