Criando várias seções HTTP no Spring Security Java Config

Usando a configuração XML do Spring Security, você pode definir vários elementos HTTP para especificar diferentes regras de acesso para diferentes partes do seu aplicativo. O exemplo dado em8.6 Configuração Avançada de Namespace define seções separadas de stateful e stateless do aplicativo, com o primeiro usando sessões e login de formulário, e o último usando sem sessões e autenticação BASIC:

<!-- Stateless RESTful service using Basic authentication -->
<http pattern="/restful/**" create-session="stateless">
    <intercept-url pattern='/**' access='ROLE_REMOTE' />
    <http-basic />
</http>

<!-- Empty filter chain for the login page -->
<http pattern="/login.htm*" security="none"/>

<!-- Additional filter chain for normal users, matching all other requests -->
<http>
    <intercept-url pattern='/**' access='ROLE_USER' />
    <form-login login-page='/login.htm' default-target-url="/home.htm"/>
    <logout />
</http>

Eu não consigo descobrir como fazer a mesma coisa com o Java Config. É importante desativar as sessões e usar um ponto de entrada diferente para meus serviços da web. Agora eu tenho o seguinte:

@Override
public void configure(WebSecurity security)
{
    security.ignoring().antMatchers("/resource/**", "/favicon.ico");
}

@Override
protected void configure(HttpSecurity security) throws Exception
{
    security
            .authorizeRequests()
                .anyRequest().authenticated()
            .and().formLogin()
                .loginPage("/login").failureUrl("/login?loginFailed")
                .defaultSuccessUrl("/ticket/list")
                .usernameParameter("username")
                .passwordParameter("password")
                .permitAll()
            .and().logout()
                .logoutUrl("/logout").logoutSuccessUrl("/login?loggedOut")
                .invalidateHttpSession(true).deleteCookies("JSESSIONID")
                .permitAll()
            .and().sessionManagement()
                .sessionFixation().changeSessionId()
                .maximumSessions(1).maxSessionsPreventsLogin(true)
                .sessionRegistry(this.sessionRegistryImpl())
            .and().and().csrf()
                .requireCsrfProtectionMatcher((r) -> {
                    String m = r.getMethod();
                    return !r.getServletPath().startsWith("/services/") &&
                            ("POST".equals(m) || "PUT".equals(m) ||
                                    "DELETE".equals(m) || "PATCH".equals(m));
                });
}

Usando isso, consegui desativar a proteção contra CSRF em meus serviços da Web. Mas eu realmente preciso de uma configuração HTTP inteira para poder desabilitar as sessões e especificar um ponto de entrada diferente. Eu sei que posso usarrequestMatcher&nbsp;ourequestMatchers&nbsp;para restringir os URIs aos quais se aplica, mas não parece que você pode usar isso para criar configurações separadas. É quase como se eu precisassedois configure(HttpSecurity security)&nbsp;métodos.