10

Apache httpclient は、デバッグ ログが有効になっている場合、クリアテキストでパスワードをログに記録するようです。

これを無効にする方法はありますか?資格情報ではなく、残りのデバッグ ログを表示するにはどうすればよいですか?

4

2 に答える 2

7

ネットワーク上でパスワードを送信する前に、パスワードの SHA1 ハッシュをメモリに作成します。

MessageDigest md = MessageDigest.getInstance("SHA-1");
byte[] sha1hash = new byte[40];
md.update(text.getBytes("UTF-8"), 0, text.length()); // TODO verify the lengths are the same
sha1hash = md.digest();

http://www.mkyong.com/java/java-sha-hashing-example/

クリアテキストのパスワードが絶対に必要な場合は、いくつかの選択肢があります。

  1. ヘッダーのロギングを無効にするか、デバッグよりも高いレベルに設定できます: Disable HttpClient logging

  2. パスワードを送信する直前にロギングを動的に無効にしてから、再度有効にすることができます: Apache Http クライアントの動的な構成

  3. 独自の Logger ハンドラー/フォーマッターを実装するか、基本的なものの 1 つをサブクラス化し、出力でパスワードを検索して、それを に置き換えることができXXXXXXXXXます。次に、ハンドラーをクラスに設定します: https://hc.apache.org/httpcomponents-client-ga/logging.html

于 2013-11-02T01:42:02.250 に答える
0

log4j.properties セット内

log4j.logger.httpclient.wire.level=WARN

于 2013-11-08T02:04:35.240 に答える