。 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" />
あなたはその文字列をログに記録する方法のいくつかのコードを表示してください。一番簡単なのは、まず情報をロギングから取り除くことです(また、おそらくtoStringメソッドからそれらを除外することもあります)。 – dunni
これらのデータはログに記録されません。これらのデータは、Log4Jロガーによって記録されるエンドポイントのパラメータとして使用できます。 –
http://stackoverflow.com/questions/2461726/how-to-mask-credit-card-numbers-in-log-files-with-log4jを参照してください。 –