¿autenticación básica de configuración de arranque de primavera en una sola ruta de aplicación web?

Estoy tratando de configurar una ruta única (/ básica) en mi aplicación Spring-boot Spring basada en MVC para que esté protegida con autenticación básica. Solo voy a configurar esto usando mis propios parámetros de configuración personalizados para que el nombre de usuario y la contraseña sean simplemente "admin" y "admin".

Actualmente funciona para la ruta / basic (se me solicita y puedo iniciar sesión correctamente). El problema es que el cierre de sesión no funciona (y no estoy seguro de por qué) y también se están pidiendo credenciales de autenticación básicas (antes de que siempre se denieguen).

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("/");
    }
}

Esperaba que / otro siempre fuera denegado, pero no entiendo por qué la autenticación básica está surgiendo. / open funciona como se esperaba. Tampoco entiendo por qué / basic / logout no me cierra la sesión (tampoco produce mensajes de error). Tengo un código simple como marcador de posición para el punto final de cierre de sesión, pero si no lo tengo, obtengo un 404. La vista de "inicio" es la raíz de mi aplicación web, así que solo quiero enviar al usuario allí después de cerrar sesión.

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

ACTUALIZACIÓN: Aquí está la solución que parecía funcionar al final (excepto la parte de cierre de sesión, aún no funciona):

@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("/");
    }
}