Commons http cliente - Kerberos simbólicos mientras que la negociación tiene \ caracteres de retorno de carro (salto de línea) r \ n
-
26-09-2019 - |
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?
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.