2016-05-06 9 views
0

マスクするには、ログファイルにいくつかのフィールドが必要です。 クレジットカードの情報やパスワードが好きです。 直接行う方法はありますか? また、ログフィールドに記入して、クレジットカード情報をマスクしてログファイルにマスクが適用されるようにするためのコード片もあります。 例: CreditcardNo:私はlog4jのを使用していますマスクパスワード、ログファイルのクレジットカード情報

***********として********* 1111 パスワードPassword123がログにapprearなければならないよう411111111111は、ログファイルにapprear必要があります情報をログに書き込む。

<groupId>com.github.spartatech</groupId> 
<artifactId>spring-ws-utils</artifactId> 

あなたがフィールドをマスクするインターセプタを設定する必要があり、これを使用するには:私はlibが使わ春-WSを使用してSOAP Webサービスのために

+1

あなたはその文字列をログに記録する方法のいくつかのコードを表示してください。一番簡単なのは、まず情報をロギングから取り除くことです(また、おそらくtoStringメソッドからそれらを除外することもあります)。 – dunni

+0

これらのデータはログに記録されません。これらのデータは、Log4Jロガーによって記録されるエンドポイントのパラメータとして使用できます。 –

+0

http://stackoverflow.com/questions/2461726/how-to-mask-credit-card-numbers-in-log-files-with-log4jを参照してください。 –

答えて

0

。 ThjeマスキングはXSLTを使用して行われます。それが動作する方法は、(この例では、春のXMLのcoinfigurationを使用していますが、あなたにも、Javaベースの構成を使用して設定することができます)されています

は春-WSインターセプタを設定します。

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:sws="http://www.springframework.org/schema/web-services" 
     xsi:schemaLocation=" 
       http://www.springframework.org/schema/web-services http://www.springframework.org/schema/web-services/web-services-2.0.xsd 
    > 
... 

<sws:interceptors> 
    <bean class="org.sparta.springwsutils.PayloadTransformedLoggingInterceptor"> 
     <property name="xslt" value="classpath:xslt/maskInput.xslt"/> 
    </bean> 
</sws:interceptors> 

次に、ファイルを作成します。 SRC /メイン/リソース/ XSLT/maskInput.xslt このファイルには、あなたのフィールドをマスクするために、すべてのXML変換が含まれます:

例:

<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:typ="http://your/schema_name" 
version="1.0"> 


<!-- copy all document --> 
<xsl:template match="@*|node()"> 
    <xsl:copy> 
     <xsl:apply-templates/> 
    </xsl:copy> 
</xsl:template> 

<!-- mask cerditCard --> 
<xsl:template match="typ:creditCard"> 
    <xsl:copy> 
     <!-- Mask beginning of the Field --> 
     <xsl:value-of select="substring('*****************************************', 1, string-length(.)-4)"/> 
     <xsl:value-of select="substring(.,string-length(.)-3,string-length(.)+1)" /> 
    </xsl:copy> 
</xsl:template> 

次に、ログ設定ファイルで、MessageTracingログを無効にし、PayloadTransformedLoggingInterceptorのログを有効にしてください。 logbackのため 例:

<logger name="org.springframework.ws.client.MessageTracing" level="ERROR"/> 
    <logger name="org.sparta.springwsutils.PayloadTransformedLoggingInterceptor" level="INFO" /> 
2

あなたはLogbackへのlog4jからの切り替えとロギングパターンを設定することで、春ブーツによって記録された機密データをマスクすることができます。

  1. ログバックを使用します。

    • 例えば:それはdefault logging option of Spring Boot

    • はマスクで各パスワードの発生を置き換えるためにconvertion wordを使用して、あなたのapplication.propertieslogging.pattern.fileを定義しますデフォルトの春ブーツlogbackファイルパターンのlogging.pattern.file=%d %replace(%m){"password='.*'", "password='xxx'"}

    • ]それは次のようになります。logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %replace(%m){"password='.*'", "password='xxx'"}%n${LOG_EXCEPTION_CONVERSION_WORD:%wEx}
関連する問題