Modify HttpServletRequest body

Estou trabalhando no código legado e preciso fazer um patch.

O problema: um aplicativo antigo envia solicitações HTTP POST ruins. Um dos parâmetros não é codificado em URL. Sei que esse parâmetro sempre vem por último e sei o nome. Agora estou tentando corrigi-lo no lado do servidor que está sendo executado dentro do tomca

Este parâmetro não pode ser acessado pelo método getParameter padrão de HttpServletRequest, pois está malformado. O método simplesmente retorna nulo. Mas quando eu leio manualmente todo o corpo da solicitação através do ServletInputStream, todos os outros parâmetros desaparecem. Parece que as classes subjacentes não podem analisar o conteúdo do ServletInputStream, pois ele é drenad

Até agora, consegui criar um invólucro que lê todos os parâmetros do corpo e substitui todos os métodos de acesso a parâmetros. Mas se algum filtro na cadeia anterior ao meu tentar acessar qualquer parâmetro, tudo será interrompido, pois ServletInputStream estará vazi

Posso de alguma forma fugir deste problema? Pode haver uma abordagem diferente?

Para resumir, se eu ler o corpo da solicitação bruta no filtro, os parâmetros desaparecerão da solicitação. Se eu ler um único parâmetro, o ServletInputStream ficará vazio e o processamento manual será impossível. Além disso, é impossível ler parâmetros malformados através do método getParamete

questionAnswers(5)

yourAnswerToTheQuestion