(это касается Java EE / Servlets WebFilters)
В настоящее время я пытаюсь написать WebFilter, который перехватывает все запросы к веб-приложению.
Однако я заметил, что WebFilter не видит запросы, сделанные в тегах <script>
.
HTML-страница, которая обслуживается, содержит таблицу стилей ...
<link rel="stylesheet" href="/webjars/bootstrap/4.1.0/css/bootstrap.min.css">
... и три Javascript-включая ...
<script src="/webjars/jquery/3.0.0/jquery.min.js"></script>
<script src="/webjars/popper.js/1.14.1/popper.min.js"></script>
<script src="/webjars/bootstrap/4.1.0/js/bootstrap.min.js"></script>
Однако @WebFilter видит запросы только к корневой странице (GET /) и к таблице стилей, которые отображаются в журналах, созданных с помощью фильтра ниже.
12: 04: 51 909 INFO Init
12: 04: 51,909 ИНФОРМАЦИЯ doFilter
12: 04: 51,909 ИНФОРМАЦИЯ Запрос сервлета: HttpServletRequestImpl [GET /]
12: 04: 51,959 ИНФОРМАЦИЯ doFilter
12: 04: 51,959 ИНФОРМАЦИЯ Запрос сервлета: HttpServletRequestImpl [GET /webjars/bootstrap/4.1.0/css/bootstrap.min.css]
Реализация WebFilter выглядит следующим образом:
@WebFilter(filterName = "webjarFilter", urlPatterns = "/*")
public class WebJarFilter implements Filter {
private Logger logger = LoggerFactory.getLogger(getClass());
public void init(FilterConfig filterConfig) throws ServletException {
logger.info("Init");
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
logger.info("doFilter");
logger.info("ServletRequest: {}", servletRequest);
filterChain.doFilter(servletRequest, servletResponse);
}
public void destroy() {
logger.info("destroy");
}
}
Файл web.xml
содержит следующее отображение:
<filter-mapping>
<filter-name>webjarFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Мой вопрос сейчас:
Может кто-нибудь сказать мне, почему фильтр не перехватывает запросы, которые должны быть сгенерированы из тегов <script>
?
Наблюдения и дополнительная информация:
- Я тестирую на Wildfly 12 с Java EE 7
- Непосредственное открытие Javascript-файлов вызовет фильтр
- При обращении к файлам Javascript с неверным путем фильтр видит запросы. Фильтр