Получить список фильтров из контекста в правильном порядке - tomcat - PullRequest
0 голосов
/ 09 апреля 2020

Мне нужно получить список фильтров в правильном порядке из контекста Tomcat. Один из обязательных фильтров должен быть первым в списке, и приложение будет закрыто, если оно не найдено.

Вход в мой метод относится к классу javax.servlet.ServletContext, и я хочу вернуть список фильтров из org.apache.tomcat.util.descriptor.web.FilterMap

private static FilterMap[] getFilterMaps(final ServletContext servletContext) {
    // Here I can cast the servletContext to ApplicationContextFacade and display registered filters
    ApplicationContextFacade applicationContextFacade = (ApplicationContextFacade) servletContext;
    applicationContextFacade.getFilterRegistrations().forEach((k,v) -> {
        System.out.println(k);
        System.out.println(v.getClassName());
        System.out.println();
    });
}

Однако карта не упорядочена, поэтому я не могу убедиться, что фильтры добавлены в правильном порядке.

Просматривая документацию, я вижу, что класс StandardContext имеет метод findFilterMaps(), который возвращает FilterMap[]. Если я пытаюсь привести ServletContext к StandardContext, я получаю сообщение об ошибке.

Как я могу проверить, что мои фильтры в правильном порядке?

...