1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/applesline-desensitize

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Данные деперсонализации инструмент

Введение

  1. Поддерживает 13 типов данных деперсонализацию, таких как: адрес электронной почты, номер телефона, идентификационная карта, банковская карта, номерной знак автомобиля, имя, домашний адрес, IP-адрес, дата рождения, пароль и т. д.
  2. Гибкая настройка, поддерживает глобальную деперсонализацию и локальную деперсонализацию.
  3. Любой объект может быть деперсонализирован.
  4. Поддерживает выражение jsonpath, можно гибко контролировать, какие слои отношений должны быть деперсонализированы или нет в одном и том же объекте.

Программное обеспечение архитектура

(Информация отсутствует)


Быстрое начало работы

1. Добавить зависимость
<dependency>
  <groupId>io.github.applesline</groupId>
  <artifactId>desensitize</artifactId>
  <version>1.0.0-SNAPSHOT</version>
</dependency>
2. Включить переключатель деперсонализации @EnableDesensitize
import org.applesline.desensitize.annotation.EnableDesensitize;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableDesensitize
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}
3. Локальная деперсонализация метода @Desensitize
    @RequestMapping("queryResult")
    @Desensitize(fieldMapping = @FieldMapping(fields = {"_mobile"},type = DesensitizeType.MOBILE))
    public Result queryResult() {
        return new Result("123456789@163.com","17622233344");
    }
4. Эффект деперсонализации (поле _mobile в ответе было деперсонализировано)
{
    "_email": "123456789@163.com",
    "_mobile": "176****3344"
}

Пример сценария

Сценарий один: деперсонализация нескольких полей
1.1 Пример конфигурации
@Desensitize(
    fieldMapping = {
    @FieldMapping(fields = {"_mobile"},type = DesensitizeType.MOBILE),
    @FieldMapping(fields = {"_email"},type = DesensitizeType.EMAIL)}
)
1.2 Эффект деперсонализации
{
    "_email": "123******@163.com",
    "_mobile": "176****3344"
}
Сценарий два: несколько полей соответствуют одному и тому же алгоритму деперсонализации
2.1 Пример конфигурации
    @Desensitize(
            fieldMapping = {
            @FieldMapping(fields = {"_mobile","phone"},type = DesensitizeType.MOBILE),
            @FieldMapping(fields = {"_email"},type = DesensitizeType.EMAIL)}
    )
2.2 Эффект деперсонализации
{
    "phone": "123**********.com",
    "result": {
        "_email": "123******@163.com",
        "_mobile": "176****3344"
    }
}
Сценарий три: игнорировать поля с одинаковыми именами на разных уровнях
3.1 Конфигурация аннотации
    @Desensitize(
            fieldMapping = {
            @FieldMapping(fields = {"_mobile","phone"},type = DesensitizeType.MOBILE),
            @FieldMapping(fields = {"_email"},type = DesensitizeType.EMAIL)},
            ignoreByJpe = "$._mobile"
    )
3.2 Эффект деперсонализации
{
    "_mobile": "17622233345",
    "result": {
        "_email": "123******@163.com",
        "_mobile": "176****3344"
    }
}
Сценарий четыре: глобальная конфигурация правил деперсонализации используется в локальных методах
4.1 Запуск класса для настройки глобальных правил
@SpringBootApplication
@EnableDesensitize(
        fieldMapping = {
                @FieldMapping(fields = {"_mobile","phone"},type = DesensitizeType.MOBILE),
                @FieldMapping(fields = {"_email"},type = DesensitizeType.EMAIL)},
        ignoreByJpe = "$._mobile"
)
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}
4.2 Использование глобальных правил в локальном методе
    @Desensitize
    public ApiResult queryResult() {
        return new ApiResult("17622233345",new Result("123456789@163.com","17622233344"));
    }
4.3 Эффект деперсонализации
{
    "_mobile": "17622233345",
    "result": {
        "_email": "123******@163.com",
        "_mobile": "176****3344"
    }
}
Сценарий пять: локальный метод перекрывает глобальные правила деперсонализации
5.1 Запуск класса для настройки глобальных правил
@SpringBootApplication
@EnableDesensitize(
        fieldMapping = {
                @FieldMapping(fields = {"_mobile","phone"},type = DesensitizeType.MOBILE),
                @FieldMapping(fields = {"_email"},type = DesensitizeType.EMAIL)},
        ignoreByJpe = "$._mobile"
)
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }}
5.2 Перекрытие глобальных правил локальным методом
    @Desensitize( fieldMapping =  @FieldMapping(fields = {"_mobile"},type = DesensitizeType.MOBILE) )
    public ApiResult queryResult() {
        return new ApiResult("17622233345",new Result("123456789@163.com","17622233344"));
    }
5.3 Эффект деперсонализации
{
    "_mobile": "176****3345",
    "result": {
        "_email": "123456789@163.com",
        "_mobile":
``` ```
##### Структура класса сущностей, зависящих от сценария

class ApiResult { private String _mobile; private Result result;

public ApiResult(String _mobile, Result result) {
    this._mobile = _mobile;
    this.result = result;
}

setter...
getter...

}

class Result { private String _email; private String _mobile;

public Result(String _email, String _mobile) {
    this._email = _email;
    this._mobile = _mobile;
}

setter...
getter...

}

5. Связаться с автором

Если в процессе использования возникнут какие-либо проблемы, добро пожаловать беспокоить~_~

Адрес электронной почты: applesline@163.com

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Инструмент для анонимизации данных, основанный на аннотациях. Позволяет настраивать глобальные и локальные правила анонимизации методов. Для выполнения анонимизации используется аннотация @Desensitize. Процесс не требует изменений в коде. В настоящее время поддерживается анонимизация следующих данных: адреса электронной почты, номера телефона, у... Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/applesline-desensitize.git
git@api.gitlife.ru:oschina-mirror/applesline-desensitize.git
oschina-mirror
applesline-desensitize
applesline-desensitize
master