Commons HTTP Client - Kerberos Token durante a negociação tem r n (Feed da linha de retorno de carruagem) caracteres

StackOverflow https://stackoverflow.com/questions/3018148

Pergunta

Estou tentando usar o cliente HTTP do Jacarta Commons. Fazendo autenticação Kerberos para se comunicar com um servidor. A autenticação sempre falha. Ao se aprofundar, descobri que o cabeçalho do token de Kerberos tem caracteres de alimentação da linha de retorno do carro, que é a causa raiz do problema. Por que ele tem r n e por que isso é um problema?

Foi útil?

Solução

r n caracteres no token Kerberos é um problema porque r é um caractere de controle HTTP. Isso significa essencialmente que o servidor vê apenas a primeira linha do token e ignora o descanso, portanto, falhando a autenticação. Para piorar, os próximos gostos do token são tratados como novos cabeçalhos e não serão bem formatados. Portanto, o servidor HTTP surgirá.

A razão pela qual isso acontece é porque a especificação RFC 1521 diz que o comprimento da linha de codificação Base64 é limitado em 76 caracteres. Portanto, os caracteres. E isso não funciona bem com o protocolo HTTP. Isso aparece apenas se você usar os tokens Kerberos que são baseados 64 codificados.

Portanto, a solução para isso é retirar os caracteres do cabeçalho do token codificado Kerberos Base64. Além disso, as versões mais antigas do codec Apache Commons não limitarão a codificação base64 a 76 linhas e, portanto, não é um problema. Portanto, se você tem um gancho na codificação, retire os caracteres problemáticos. Se você não usa a versão mais antiga do código do Apache Commons com o Commons-HttpClient.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top