Heim  >  Artikel  >  Java  >  So fügen Sie eine Desensibilisierungsfunktion in SpringBoot hinzu

So fügen Sie eine Desensibilisierungsfunktion in SpringBoot hinzu

WBOY
WBOYnach vorne
2023-05-23 21:04:041191Durchsuche

Neue Desensibilisierungsfunktion im SpringBoot-Projekt

Projekthintergrund

Ein SpringBoot-Projekt wird derzeit entwickelt. Dieses Projekt verfügt über einen Web-Client und ein WeChat-Applet. Das Webterminal steht den Mitarbeitern zur Nutzung zur Verfügung und das WeChat-Applet steht der Öffentlichkeit für Reservierungen zur Verfügung. Einige sensible Daten im Projekt müssen desensibilisiert und zur öffentlichen Ansicht an das WeChat-Applet übergeben werden.

Beschreibung der Projektanforderungen

Da es im Projekt zwei Benutzer gibt, sind die Datenberechtigungen für die beiden Enden unterschiedlich. Alle Daten können auf der Webseite angezeigt werden, während im Miniprogramm nur desensibilisierte Daten angezeigt werden können.

Es muss eine universelle Desensibilisierungsfunktion entwickelt werden 通用脱敏功能

  • 手动进行脱敏操作

  • 支持多种对象,

  • 支持不同字段,并脱敏指定字段

  • 字段的脱敏方式多样

  • 字段的脱敏方式可自定义

项目解决方案

1. 解决方案

使用注解方式

  • Manueller Desensibilisierungsvorgang

  • Unterstützt eine Vielzahl von Objekten,

  • Unterstützt verschiedene Felder und desensibilisiert bestimmte Felder

  • Es gibt verschiedene Möglichkeiten, Felder zu desensibilisieren

  • Die Felddesensibilisierungsmethode kann angepasst werden

Projektlösung
1. Verwenden Sie Anmerkungsmethode, um die Angabe von Feldern, verschiedenen Feldern und mehreren Desensibilisierungsvorgängen zu unterstützen und kann vom Objekt getrennt werden.
Verwenden Sie Werkzeugobjekte und übergeben Sie generische Parameter, um Desensibilisierungsvorgänge für verschiedene Objekte zu unterstützen. 2. Implementierungscode Anmerkung erforderlich
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定义数据脱敏
 *
 * 例如: 身份证,手机号等信息进行模糊处理
 *
 * @author lzddddd
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Sensitive {

    /**
     * 脱敏数据类型
     */
    SensitiveType type() default SensitiveType.CUSTOMER;

    /**
     * 前置不需要打码的长度
     */
    int prefixNoMaskLen() default 0;

    /**
     * 后置不需要打码的长度
     */
    int suffixNoMaskLen() default 0;

    /**
     * 用什么打码
     */
    String symbol() default "*";

}

3.2 Desensibilisierungsvorgang

public enum SensitiveType {

    /**
     * 自定义
     */
    CUSTOMER,
    /**
     * 名称
     **/
    CHINESE_NAME,
    /**
     * 身份证证件号
     **/
    ID_CARD_NUM,
    /**
     * 手机号
     **/
    MOBILE_PHONE,
    /**
     * 固定电话
     */
    FIXED_PHONE,
    /**
     * 密码
     **/
    PASSWORD,
    /**
     * 银行卡号
     */
    BANKCARD,
    /**
     * 邮箱
     */
    EMAIL,
    /**
     * 地址
     */
    ADDRESS,

}

Das obige ist der detaillierte Inhalt vonSo fügen Sie eine Desensibilisierungsfunktion in SpringBoot hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen