Я использую токен JWT для защиты своего приложения. Настройка в application.yml работает как положено.
Теперь я пытаюсь отфильтровать все запросы, поступающие на контроллеры.
Например:
- если переменная Path запроса не совпадает, я хочу отклонить вызов с исключениями для Frontend.
- если переменная Path запроса Я хочу переадресовать вызов на контроллер.
Я нахожу 2 разных способа сделать это: HttpServerFilter и SecurityFilter.
Класс фильтра:
@Filter("/**")
public class MySecurityFilter extends SecurityFilter {
@Override
protected Publisher<MutableHttpResponse<?>> doFilterOnce(HttpRequest<?> request,
ServerFilterChain chain) {
checkRules(request, chain, null, null, false);
return super.doFilterOnce(request, chain);
}
@Override
protected Publisher<MutableHttpResponse<?>> checkRules(HttpRequest<?> request,
ServerFilterChain chain, @Nullable RouteMatch routeMatch,
@Nullable Map<String, Object> attributes, boolean forbidden) {
return super.checkRules(request, chain, routeMatch, attributes, forbidden);
}
}
Похоже, что SecurityFilter - лучшее решение, но как использовать checkRules и как с ним работает doFilterOnce?