Калитка 6 - Захват параметров HttpServletRequest в многочастной форме?
Используя Wicket 6.17 и сервлет 2.5, у меня есть форма, которая позволяет загружать файлы, а также ReCaptcha (используя Recaptcha4j). Когда форма имеет ReCaptcha без загрузки файла, она работает правильно, используя код:
final HttpServletRequest servletRequest = (HttpServletRequest ) ((WebRequest) getRequest()).getContainerRequest();
final String remoteAddress = servletRequest.getRemoteAddr();
final String challengeField = servletRequest.getParameter("recaptcha_challenge_field");
final String responseField = servletRequest.getParameter("recaptcha_response_field");
получить поля запроса и ответа, чтобы их можно было проверить.
Это не работает, когда форма имеет загружаемый файл, потому что форма должна быть составной, чтобы загрузка работала, и поэтому, когда я пытаюсь получить параметры таким способом, происходит сбой.
Я пытался получить параметры по-разному, используя ServletFileUpload:
ServletFileUpload fileUpload = new ServletFileUpload(new DiskFileItemFactory(new FileCleaner()) );
String response = IOUtils.toString(servletRequest.getInputStream());
а также
ServletFileUpload fileUpload = new ServletFileUpload(new DiskFileItemFactory(new FileCleaner()) );
List<FileItem> requests = fileUpload.parseRequest(servletRequest);
оба из которых всегда возвращаются пустыми.
Используя сетевую консоль Chrome, я вижу значения, которые я ищу, в Request Payload, поэтому я знаю, что они где-то есть.
Будем весьма благодарны за любые советы о том, почему запросы возвращаются пустыми и как их найти.
Обновление: я также попытался сделать компонент ReCaptcha составным и исключил загрузку файла. Результат все тот же, что ответ пустой, и я остаюсь с первоначальным выводом о том, что проблема заключается в представлении многочастной формы.