Как отключить метод запроса параметров, даже не обрабатывается в dropwizard - PullRequest
0 голосов
/ 17 мая 2018

Я посылаю команду curl с методом запроса OPTIONS в мое приложение dropwizard.Я получаю в качестве ответа методы 200 Ok, а также методы POST и OPTIONS.

Как мне предотвратить это из соображений безопасности, так как это дает некоторую информацию о том, что поддерживается.

Я попытался реализоватьПользовательский фильтр запросов, который отвечает 405, не разрешен для метода параметров и добавлен к ресурсу с использованием NameBinding, но я думаю, что запрос OPTIONS не достигает этой точки, и поэтому я все еще получаю 200OK и тот же POST, OPTIONSпростой текстовый ответ.

Я также попытался использовать CrossOriginFilter.class в environment.servlets.addFilter () и настроил его для запрета запроса OPTIONS.но это также не сработало.

Я получил еще один пост здесь: Отключить ОПЦИИ Метод Jetty Server

но как мне добиться этого в dropwizard через код Java?

Ответы [ 2 ]

0 голосов
/ 22 июня 2018

Я понял,

В контексте dropwizard:

Два способа сделать это:

  1. [Простой способ] Создать запросфильтровать и фильтровать на основе списка URL-адресов, для которых требуется отключить запрос OPTIONS.

  2. [Крутой способ] Если вы хотите использовать фильтр на основе аннотаций, например @OptionsFilter, для определенногоМетод ресурса API.

Подробно 2-й метод: во-первых, вам нужно расширить ApplicationEventListener и зарегистрировать все такие методы и во время события APPLICATION_START (с использованием отражения).Затем вы также расширяете RequestEventListener и слушаете событие, а затем находите метод из uriInfo, который вы получаете в request context, и затем проверяете список методов, которые вы создали при запуске приложения.Для получения дополнительной информации о реализации см., Как работает аннотация @UnitOfWork, и задайте SessionFactory для метода ресурса.

0 голосов
/ 17 мая 2018

Вы можете отключить запрос OPTIONS на глобальном уровне приложения в DW, указав, какие методы разрешены в файле конфигурации YAML:

server:
  allowedMethods:
  - GET

Теперь приложения возвращают 405 для всех запросов OPTION.

...