Маска 9-значный номер SSN в журналах sql - PullRequest
0 голосов
/ 14 марта 2019

Нам нужно маскировать SSN (9 цифр) только в файле журнала sql, а не в Order No (9 цифр).Есть одна проблема - номер (123456789) может быть SSN и номер заказа.Как мы можем различить оба, чтобы один маскировался, а другой не маскировался.

Есть еще одна проблема - журналы sql не создаются нами, они создаются встроенными классами jar-файлов, которыемы используем, позвольте мне объяснить, что я хочу сказать.

Код Log4j.xml ниже

<appender name="SQL_logfile" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="../logs/sql.log" />
    <layout class="CustomFilterLayout;">
        <param name="ConversionPattern" value="[%d{ISO8601}{CST}] [%p] [%X{ipAddress}] [%X{userID}] [%t] [%c] - %m%n" />
    </layout>
</appender>

<appender name="async_SQL_logfile" class="org.apache.log4j.AsyncAppender">       
    <appender-ref ref="SQL_logfile"/>
</appender>

<logger name="java.sql" additivity="false">
    <level value="DEBUG" />
    <appender-ref ref="async_SQL_logfile" />             
</logger>

Код файла DAO ниже

public List<TestDelivery> getTestDelivery(long SSN, long orderNo)
{   
    List<TestDelivery>  testDeliveryList = new ArrayList<>();
    Map<String, Object> params = new HashMap<>();
    params.put("SSN", SSN);
    params.put("orderNo", orderNo);
    try {
        testDeliveryList = (List<TestDelivery>) getSqlMapClientTemplate().queryForList("getTestDelivery", params);
    } catch(Exception e) {

    }
    return testDeliveryList;
}

Проблемазаключается в том, что записываемые журналы выполняются автоматически классом getSqlMapClientTemplate, над которым у нас нет контроля, и журналы печатаются, как показано ниже

Params -> (SSN,123456789),(orderNo,123456789)

Но мы хотим, чтобы журналы печатались, как показано ниже, и мы не можемзамаскируйте значение SSN, которое отправляется в параметрах в методе класса DAO getTestDelivery, потому что это значение передается для получения списка TestDelivery. Мы хотим только маскировку SSN в журналах.

Params -> (SSN,#########),(orderNo,123456789)
...