Commons http cliente - Kerberos simbólicos mientras que la negociación tiene \ caracteres de retorno de carro (salto de línea) r \ n

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

Pregunta

Estoy tratando de utilizar Commons Jakarta cliente HTTP. Haciendo autenticación Kerberos para comunicarse con un servidor. La autenticación siempre falla. En la excavación más profunda descubrí que la cabecera del Kerberos ficha tiene caracteres carro de avance de línea de retorno en ella que es la causa raíz del problema. ¿Por qué tiene \ r \ n caracteres y por qué es que un problema?

¿Fue útil?

Solución

\ r \ n caracteres en las Kerberos token es un problema porque \ r es un carácter de control HTTP. Esto significa esencialmente que el servidor sólo ve la primera línea de la señal y por lo tanto, no ignora reclinarse autenticación. Para empeorar las cosas, los siguientes gustos del token son tratados como nuevas cabeceras y no tener el formato también. Así http servidor se asuste.

La razón por la que esto sucede es porque especificación RFC 1521 dice que la codificación base64 longitud de la línea se limita a 76 caracteres. Por lo tanto \ r \ n caracteres. Y esto no funciona bien con el protocolo HTTP. Este superficies sólo si se utiliza tokens Kerberos que son codificados en base64.

solución Así que para esto es que se deben eliminar \ r \ n caracteres de los base64 Kerberos codificada cabecera token. Además, las versiones anteriores de Apache Commons códec no base64 límite que codifica para 76 líneas y por lo tanto no es un problema. Así que si usted tiene gancho en la codificación, despojar a los personajes problemáticos. Si no lo hace a continuación, utiliza la versión anterior de Apache Commons código con commons-httpclient.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top