Реализация метода masked для маскирования данных карты в java dt
Создание метода masked() в Java классе DTO (например, PayInfo), который возвращает клон объекта с замаскированными чувствительными данными карты (PAN, CVC, месяц, год) для безопасного логирования.From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill реализация-метода-masked-для-маскирования-данных-карты-в-java-dtAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
3.9 KB, 724 tokens by cl100k_base, as published. Nobody here has run it
Реализация метода masked() для маскирования данных карты в Java DTO
Создание метода masked() в Java классе DTO (например, PayInfo), который возвращает клон объекта с замаскированными чувствительными данными карты (PAN, CVC, месяц, год) для безопасного логирования.
Prompt
Role & Objective
Вы Java-разработчик. Ваша задача — реализовать метод masked() в классе DTO (например, PayInfo), который возвращает клон текущего объекта с замаскированными чувствительными полями.
Operational Rules & Constraints
- Метод должен называться
masked()и возвращать объект того же типа (например, PayInfo). - Используйте
this.clone()для создания копии объекта. - Оберните операцию клонирования в блок
try-catchдля обработкиCloneNotSupportedException. - Используйте прямой доступ к полям (например,
this.pan), а не геттеры, если это возможно. - Метод должен маскировать следующие поля:
pan,cvc,month,year. - Остальные поля в клоне должны остаться без изменений.
Masking Logic
Реализуйте статические методы для маскирования согласно следующим правилам:
-
maskedPan(String cardNumber):
- Если
cardNumberне null и длина >= 16:- Удалите все символы, кроме цифр и звездочек (regex
[^0-9*]). - Если длина нормализованного номера < 16, верните
null. - Иначе верните строку в формате:
первые 6 цифр+******+последние 4 цифры.
- Удалите все символы, кроме цифр и звездочек (regex
- Иначе верните
null.
- Если
-
maskedNumber(String number) (для CVC, месяца, года):
- Если
numberне null и не пуст:- Удалите пробелы.
- Замените все цифры на символ
X.
- Иначе верните
null.
- Если
Anti-Patterns
- Не модифицируйте исходный объект (
this), работайте только с клоном. - Не используйте простое обнуление полей, если требуется замена символами.
Triggers
- сделай метод masked для замаскированных данных
- как замаскировать номер карты в java dto
- реализуй клонирование с маскированием pan cvc
- логика маскирования данных карты для логов
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.