Как использовать Micronaut Security для фильтрации запросов? [Micronaut Security 1.3.1] - PullRequest
0 голосов
/ 18 марта 2020

Я использую токен JWT для защиты своего приложения. Настройка в application.yml работает как положено.

Теперь я пытаюсь отфильтровать все запросы, поступающие на контроллеры.

Например:

  1. если переменная Path запроса не совпадает, я хочу отклонить вызов с исключениями для Frontend.
  2. если переменная 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?

...