Как передать скрытое поле формы с помощью метода post в jsp в метод doFilter фильтра сервлета? - PullRequest
0 голосов
/ 07 июня 2019

JSP код:

<form name="editAddress" id="editAddress"  method ="post" >
<td ><input type="hidden" name="csrf" id="csrf" value="<%=token%>"></input>

Фильтр сервлетов:

public class ValidateToken implements Filter  
    {
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException 
        {
           HttpServletRequest httpRequest = request instanceof HttpServletRequest ? (HttpServletRequest) request : null;
           HttpServletResponse httpResponse = response instanceof HttpServletResponse ? (HttpServletResponse) response: null;

            String token =httpRequest.getParameter("csrf");

            System.out.println("token =" +token);

            chain.doFilter(request, response);
        }
    }

Здесь значение токена равно нулю в классе ValidateToken.

1 Ответ

0 голосов
/ 07 июня 2019

Вам нужно использовать параметр метода request, а не какое-то самоопределяемое поле.

(я даже не вижу, где эти поля request и responseв строке 3 и 4 даже взяты. Filter - это Интерфейс, и, как таковой, не имеет полей. Это даже компилируется?)

Удалите два поля и приведите параметр метода requestна HttpServletRequest, и это будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...