comuni http cliente - token Kerberos, mentre negoziale ha caratteri (carriage return linea di alimentazione) \ r \ n

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

Domanda

Sto cercando di utilizzare comuni Jakarta http client. Facendo autenticazione Kerberos per comunicare con un server. L'autenticazione non riesce sempre. A scavare più profondo ho scoperto che Kerberos intestazione pedina ha carrozza riga avanzamento dei caratteri di ritorno in essa che è la causa principale del problema. Perché ha \ r \ n caratteri e perché è che un problema?

È stato utile?

Soluzione

\ r \ n caratteri nei token Kerberos è un problema perché \ R è un caratteri di controllo HTTP. Ciò significa in sostanza che il server vede solo prima riga del token e ignora quindi stare in mancanza di autenticazione. A peggiorare le cose, i prossimi calibro del token sono trattati come nuove intestazioni e non verranno formattati bene. Così http server fuori di testa.

Il motivo per cui questo accade è perché RFC 1521 specifica dice che codifica base64 lunghezza della linea è limitato a 76 caratteri. Quindi \ r \ n caratteri. E questo non funziona bene con il protocollo HTTP. Questo emerge solo se si utilizza token Kerberos che sono Base64 codificati.

Quindi la soluzione a questo è per togliere \ r \ n caratteri da Kerberos Base64 codificato intestazione token. Inoltre, le versioni precedenti di apache comuni codec base64 limite non codificante a 76 linee e quindi non è un problema. Quindi, se avete il gancio in codifica, nudo fuori i caratteri problematici. Se non si utilizza quindi la versione precedente di Apache codice comuni con commons-HttpClient.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top