コモンズHTTPクライアント - ケルベロストークン交渉は\ rを\ n個(キャリッジリターンラインフィード)文字を持っていながら、

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

質問

私はJakarta CommonsのHTTPクライアントを使用しようとしています。サーバーと通信するためにKerberos認証を行います。認証は常に失敗します。深く掘りに私は、Kerberosトークンヘッダが問題の根本的な原因であることで、キャリッジリターンラインフィード文字を持っていることが分かりました。なぜそれが、\ rを\ n文字を持っている理由は、問題あるか。

役に立ちましたか?

解決

\ rはHTTP制御文字であるため問題であるトークンケルベロスで

\ rを\ n文字。それは、本質的に、サーバが唯一のトークンの最初の行を見て、無視が故に失敗した認証を休むことを意味します。それはさらに悪いことに、トークンの次の同類は、新しいヘッダーとして扱われ、よくフォーマットされることはありません。だから、HTTPサーバが陥るされます。

RFC 1521の仕様は、そのbase64エンコードラインの長さは76文字に制限されていると言うので、

はこの問題が発生した理由があります。したがって、\ rを\ n文字。そして、これはHTTPプロトコルでうまく動作しません。あなたがbase64エンコードされたKerberosトークンを使用する場合にのみこれが表面ます。

この解決策は、そう\ Rを取り除くことである\ nはケルベロスbase64で符号化されたトークンヘッダから文字。また、Apacheのコモンズの古いバージョンでは76行となりません問題にBASE64エンコーディングを制限しないコーデック。あなたはエンコーディングにフックを持っているのであれば、問題のある文字を取り除きます。あなたはその後、コモンズ-のHTTPClientでのApache Commonsのコードの古いバージョンを使用しない場合ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top