2017-01-09 4 views
2

現在、Apache CXFを使用して第三者にリクエストするアプリケーションで作業しています。送信されるすべてのリクエストを記録する必要があります。問題は、これらの要求の多くに、機密データが含まれていてログに記録できないことです。データ自体は通常送信前に暗号化されますが、暗号化された値を記録することさえできません。Soap Request Logging - 機密データを排除するための優雅なソリューション

非常に簡単な解決策は、ログに記録すべきではないフィールドの「ブラックリスト」を作成することです。この問題は、絶え間なく成長するアプリケーションの分野を見逃しやすいことです。

私がしたいことは、ログに記録すべきフィールドを「ホワイトリスト」にする方法です。

これは複雑なようですが、私はこれを行う必要がある唯一の人になることはできません。

+0

暗号化され、機密フィールドを削除する前に、要求をログに記録しますか?非表示にするために各フィールドに注釈を付けて、カスタムシリアライザを使用できますか? – pedrofb

+0

フィールド値は要求全体ではなく暗号化されているため、通常、フィールドはすでに暗号化された後で暗号化された後にロギングされます。第三者からwsdlを受け取ったため、クラスに注釈を付けることはできません。クラスを再生成するたびに、戻ってログアノテーションをクラスに再度追加する必要があります。 –

+0

ホワイトリストは受け入れられる選択と思われます。ブラックリストは、単語セットを構築することが難しく、wsdlプロバイダがコントロールをスキップできる名前を変更できるため、危険です。暗号化後にインターセプタを設定して、ホワイトリストに存在しないフィールドを空白のままにすることができます – pedrofb

答えて

0

私は、XPath式のサブセットに基づいて匿名化/サブツリーの削除を可能にするtoolを書いています。 SAXフィルターを使用するより高度なアプローチがあると思います。

関連する問題