Spring Boot Security Authentication: приложение, имеющее 2 разных URL домена, и должно проходить аутентификацию в Spring Security - PullRequest
2 голосов
/ 16 марта 2020

Мне нужна помощь по одной из проблем, с которыми я сталкиваюсь в Spring Boot Security. У меня есть приложение, которое имеет 2 разных URL. (Инфоблок CNAME)

  1. domain1.com
  2. domain2.com

оба URL-адреса указывают на один и тот же URL применение.

По бизнес-причинам нам нужны два разных URL-адреса, и мы планируем перейти на страницу сравнения, основанную на URL-адресе, введенном в браузере. Проблема с Spring Security AntMatcher. С помощью AntMatcher мы можем указать только путь, но как мы можем обратиться к домену с его помощью .

Не могли бы вы направить меня.

Заранее спасибо.

1 Ответ

1 голос
/ 17 марта 2020

Вместо AntMatcher вы можете использовать

 http.requestMatcher(new RequestHeaderRequestMatcher("Host", "127.0.0.1:8080"))

с любым другим matcher из org.springframework.security.web.util.matcher пакета.

Вот пример:

@EnableWebSecurity
@Configuration
public static class WebSecurityConfig extends WebSecurityConfigurerAdapter   {

    @Configuration
    @Order(1)
    public static class SecConfig1 extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.requestMatcher(new RequestHeaderRequestMatcher("Host", "127.0.0.1:8080"))
                    .authorizeRequests()
                    .anyRequest()
                    .authenticated()
            .and()
                    .formLogin();
        }
    }
    @Configuration
    @Order(2)
    public static class SecConfig2 extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.requestMatcher(new RequestHeaderRequestMatcher("Host", "127.0.0.2:8080"))
                    .authorizeRequests()
                    .anyRequest()
                    .authenticated()
                    .and()
                    .httpBasic();
        }
    }
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        //default deny all
        http.authorizeRequests().anyRequest().denyAll();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...