diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/SensitiveFieldSerialize.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/SensitiveSerialize.java similarity index 89% rename from jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/SensitiveFieldSerialize.java rename to jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/SensitiveSerialize.java index d65de55523..f5deb5e803 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/SensitiveFieldSerialize.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/SensitiveSerialize.java @@ -9,7 +9,7 @@ import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.jeecg.common.desensitization.annotation.SensitiveField; +import org.jeecg.common.desensitization.annotation.Sensitive; import org.jeecg.common.desensitization.enums.SensitiveEnum; import org.jeecg.common.desensitization.util.SensitiveInfoUtil; import org.jeecg.common.util.encryption.AesEncryptUtil; @@ -24,7 +24,7 @@ @NoArgsConstructor @AllArgsConstructor @Slf4j -public class SensitiveFieldSerialize extends JsonSerializer implements ContextualSerializer { +public class SensitiveSerialize extends JsonSerializer implements ContextualSerializer { private SensitiveEnum type; @@ -72,12 +72,12 @@ public void serialize(String data, JsonGenerator jsonGenerator, SerializerProvid public JsonSerializer createContextual(SerializerProvider serializerProvider, BeanProperty beanProperty) throws JsonMappingException { if (beanProperty != null) { if (Objects.equals(beanProperty.getType().getRawClass(), String.class)) { - SensitiveField sensitive = beanProperty.getAnnotation(SensitiveField.class); + Sensitive sensitive = beanProperty.getAnnotation(Sensitive.class); if (sensitive == null) { - sensitive = beanProperty.getContextAnnotation(SensitiveField.class); + sensitive = beanProperty.getContextAnnotation(Sensitive.class); } if (sensitive != null) { - return new SensitiveFieldSerialize(sensitive.type()); + return new SensitiveSerialize(sensitive.type()); } } return serializerProvider.findValueSerializer(beanProperty.getType(), beanProperty); diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/annotation/Sensitive.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/annotation/Sensitive.java new file mode 100644 index 0000000000..466a3a0126 --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/annotation/Sensitive.java @@ -0,0 +1,26 @@ +package org.jeecg.common.desensitization.annotation; + + +import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import org.jeecg.common.desensitization.SensitiveSerialize; +import org.jeecg.common.desensitization.enums.SensitiveEnum; + +import java.lang.annotation.*; + +/** + * 在字段上定义 标识字段存储的信息是敏感的 + */ +@Documented +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +@JacksonAnnotationsInside +@JsonSerialize(using = SensitiveSerialize.class) +public @interface Sensitive { + + /** + * 不同类型处理不同 + * @return + */ + SensitiveEnum type() default SensitiveEnum.ENCODE; +} diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/annotation/SensitiveEncode.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/annotation/SensitiveEncode.java index b3a98afc01..1ebd473dde 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/annotation/SensitiveEncode.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/annotation/SensitiveEncode.java @@ -6,7 +6,7 @@ * 加密注解 * * 在方法上声明 将方法返回对象中的敏感字段 加密/格式化 - * @deprecated 直接在实体的字段中使用@{@link SensitiveField}即可 + * @deprecated 直接在实体的字段中使用@{@link Sensitive}即可 */ @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/annotation/SensitiveField.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/annotation/SensitiveField.java index 72d1f5e9c4..c0ca46cdf0 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/annotation/SensitiveField.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/annotation/SensitiveField.java @@ -14,8 +14,6 @@ @Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) -@JacksonAnnotationsInside -@JsonSerialize(using = SensitiveFieldSerialize.class) public @interface SensitiveField { /** diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/aspect/SensitiveDataAspect.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/aspect/SensitiveDataAspect.java index 8b80b155ea..da69702b71 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/aspect/SensitiveDataAspect.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/desensitization/aspect/SensitiveDataAspect.java @@ -27,7 +27,7 @@ public class SensitiveDataAspect { /** * 定义切点Pointcut */ - @Pointcut("@annotation(org.jeecg.common.desensitization.annotation.SensitiveDecode)") + @Pointcut("@annotation(org.jeecg.common.desensitization.annotation.SensitiveEncode) || @annotation(org.jeecg.common.desensitization.annotation.SensitiveDecode)") public void sensitivePointCut() { }