Spring Security Filter порядок на URL - PullRequest
0 голосов
/ 21 мая 2019

У меня есть два фильтра, которые обрабатывают мой httpRequest и добавляют заголовки и данные.

Я хочу применить свои фильтры в определенном порядке исполнения. Итак, я попробовал:

@Component
@Order(1)
public class FirstFilter implements Filter { //**** }

@Component
@Order(2)
public class SecondFilter implements Filter { //**** }

и это прекрасно работает. Однако я хочу применить этот порядок только к запросу, начинающемуся с (/ api), а не ко всему запросу .. поэтому аннотация @Order не выполняет то, что я хочу ..

Я пробовал:

@Override
protected void configure(HttpSecurity http) throws Exception {

http

        .antMatcher("/api/**")
        .addFilterAfter(new FirstFilter (), ChannelProcessingFilter.class)
        .addFilterAfter(new SecondtFilter (), FirstFilter .class)

и это тоже работает, но я не хотел добавлять свои фильтры после ChannelProcessingFilter .. это заставляет мои фильтры обрабатывать запросы два раза! и не только один раз!

Есть идеи?

1 Ответ

0 голосов
/ 21 мая 2019

Прочитайте этот вопрос о выпуске, который именно то, что вы просите.Он считывает

Spring Security не устанавливает порядок для создаваемого компонента EJB.Это означает, что, когда Boot создает для него FilterRegistrationBean, он получает порядок по умолчанию LOWEST_PRECEDENCE.

Если вы хотите, чтобы ваш собственный фильтр работал после Spring Security, вы можете создать свою собственную регистрацию для фильтра Spring Security иуточняйте заказ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...