Мне нужно получить список фильтров в правильном порядке из контекста 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
, я получаю сообщение об ошибке.
Как я могу проверить, что мои фильтры в правильном порядке?