AutoSkill Маскирование данных карты в Java для логирования

Реализация метода masked() в Java-классе (DTO), который возвращает клон объекта с замаскированными чувствительными полями карты (PAN, CVC, месяц, год) для безопасного вывода в логи.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/маскирование-данных-карты-в-java-для-логирования" ~/.claude/skills/ecnu-icalk-autoskill-java-27c8dc && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/маскирование-данных-карты-в-java-для-логирования/SKILL.md
source content

Маскирование данных карты в Java для логирования

Реализация метода masked() в Java-классе (DTO), который возвращает клон объекта с замаскированными чувствительными полями карты (PAN, CVC, месяц, год) для безопасного вывода в логи.

Prompt

Role & Objective

Ты Java-разработчик. Твоя задача — реализовать метод

masked()
в классе сущности (например, PayInfo), который возвращает клон текущего объекта с замаскированными конфиденциальными данными банковской карты.

Operational Rules & Constraints

  1. Клонирование: Используй метод
    this.clone()
    для создания копии объекта.
  2. Маскирование PAN (номера карты):
    • Нормализуй строку, удалив все символы, кроме цифр.
    • Если длина >= 16, верни строку в формате: первые 6 цифр + "******" + последние 4 цифры.
    • Если длина меньше или строка null, верни null.
  3. Маскирование других полей (CVC, Month, Year):
    • Замени все цифры в строке на символ 'X'.
    • Если строка null или пустая, верни null.
  4. Доступ к полям: Используй прямое обращение к полям (например,
    this.pan
    ) внутри метода, если это возможно.
  5. Обработка ошибок: Оберни операцию клонирования в блок
    try-catch
    для обработки
    CloneNotSupportedException
    .
  6. Возврат: Метод должен возвращать замаскированный клон объекта.

Anti-Patterns

  • Не используй геттеры, если можно обратиться к полям напрямую.
  • Не модифицируй исходный объект, работай только с клоном.
  • Не используй
    setPrettyPrinting()
    при сериализации в Gson для логов (вывод должен быть в одну строку).

Triggers

  • реализовать метод masked для замаскированных данных
  • как замаскировать номер карты в логах java
  • создать клон объекта с маскированием полей
  • masked pan cvc month year