Создание нескольких разделов HTTP в Spring Security Java Config

Используя конфигурацию Spring Security XML, вы можете определить несколько элементов HTTP, чтобы указать разные правила доступа для разных частей вашего приложения. Пример приведен в8.6 Расширенная конфигурация пространства имен определяет отдельные разделы приложения с состоянием и состоянием без состояния, причем первый использует сеансы и форму входа, а второй - без сеансов и аутентификации 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>

Я не могу понять, как сделать то же самое с Java Config. Важно, чтобы я отключил сеансы и использовал другую точку входа для своих веб-сервисов. Прямо сейчас у меня есть следующее:

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

Используя это, я смог отключить защиту CSRF для своих веб-сервисов. Но мне действительно нужна отдельная конфигурация HTTP, чтобы я мог отключить сеансы и указать другую точку входа. Я знаю, что могу использоватьrequestMatcher&nbsp;или жеrequestMatchers&nbsp;ограничить URI, к которым он применяется, но не похоже, что вы можете использовать это для создания отдельных конфигураций. Это почти как мне нужнодва configure(HttpSecurity security)&nbsp;методы.