Я работаю над приложением tomcat. Я пытаюсь добавить токен аутентификации CSRF, предоставленный библиотекой catlina (org.apache.catalina.filters.CsrfPrevention). Я добавил фильтр web.xml Не удалось аутентифицировать запрос на отправку токена CSRF с tomcat
<filter>
<filter-name>CsrfFilter</filter-name>
<filter-class>org.apache.catalina.filters.CsrfPreventionFilter</filter-class>
<init-param>
<param-name>entryPoints</param-name>
<param-value>/Login</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CsrfFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Также я обновил login.jsp
<% String url = '/Login?x=true';
String encodeUrl = response.encode(url);
%>
<form action="<%=urlEncode%" action="Post">
<input type="text" name="username"/>
<input type="password" name="password"/>
<button type="submit">Login</button>
</form>
Теперь, когда я бегу сервер Войти страница оказывает. Когда я вхожу в имя пользователя и пароль, браузер отправляет запрос на запрос в Сервлет входа в CSRF_NONCE http://localhost:9090/Login?x=true&org.apache.catalina.filters.CSRF_NONCE=7DE88A93A526E465566864684FEB01C9. Его наличие CSRF_NONCE, но все еще ответ имеет статус 403. Я прочитал много документов, но не смог найти решение для аутентификации post-запроса.
Я также утверждаю, что мне нужно кодировать все URL-адреса, но не смог найти, как мне это нужно делать. Нужно ли мне писать фильтр для этого?