Estamos recebendo um 500 fora do Apache ao fazer proxy de chamadas para o tomcat quando há um espaço codificado na URL.
Estamos migrando um aplicativo que funcionava bem em um contêiner J2EE que tinha uma versão antiga e integrada do Apache (1.x), mas assim que movemos o aplicativo para o Tomcat + Apache 2 + mod_proxy, começamos a ver o erro.
Por exemplo:
http://foo.org/app/rest/no_spaces/ works fine
http://foo.org/app/rest/no%20spaces fails with a 500
O pedido funciona bem se acertarmos o tomcat diretamente e sabemos que ele não está atingindo o servlet ao passar pelo Apache.
A configuração do proxy é a seguinte para o servidor que vive no foo.org:
ProxyPass /app ajp://127.0.0.1:8080/app
ProxyPassReverse /app ajp://127.0.0.1:8080/app
Tentamos mudar para HTTP em vez de AJP sem alterar o erro.
A principal teoria é que o mod_proxy está decodificando o% 20 e, em seguida, esperando ver outras informações do cabeçalho HTTP em vez da substring de URL restante e está resultando em um 500. Se esse for o caso, alguém tem uma solução alternativa que não envolvem reescrever o aplicativo. Se esta não é a causa, alguém tem uma sugestão sobre o que poderia ser?
Não vi nenhuma documentação ou relatórios de bugs desse sintoma exato nas minhas pesquisas.
Obrigado antecipadamente.