Class DesensitizeJsonSerializer

java.lang.Object
tools.jackson.databind.ValueSerializer<String>
tech.riemann.nif.web.desensitize.DesensitizeJsonSerializer
All Implemented Interfaces:
tools.jackson.databind.jsonFormatVisitors.JsonFormatVisitable

public class DesensitizeJsonSerializer extends tools.jackson.databind.ValueSerializer<String>
JSON序列化脱敏器

在JSON序列化时自动对标记@Desensitize的字段进行脱敏

工作原理: 1. Jackson序列化时检测到@Desensitize注解 2. 创建上下文序列化器,读取注解配置 3. 根据脱敏类型调用相应的脱敏方法 4. 输出脱敏后的值

Author:
Kerbores(kerbores@riemann.tech)
  • Nested Class Summary

    Nested classes/interfaces inherited from class tools.jackson.databind.ValueSerializer

    tools.jackson.databind.ValueSerializer.None
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    DesensitizeJsonSerializer(DesensitizeType type, int prefixKeep, int suffixKeep, char replacer)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    tools.jackson.databind.ValueSerializer<?>
    createContextual(tools.jackson.databind.SerializationContext ctxt, tools.jackson.databind.BeanProperty property)
     
    void
    serialize(String value, tools.jackson.core.JsonGenerator gen, tools.jackson.databind.SerializationContext ctxt)
     

    Methods inherited from class tools.jackson.databind.ValueSerializer

    acceptJsonFormatVisitor, getDelegatee, handledType, isEmpty, isUnwrappingSerializer, properties, replaceDelegatee, resolve, serializeWithType, unwrappingSerializer, usesObjectId, withFilterId, withFormatOverrides, withIgnoredProperties

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • DesensitizeJsonSerializer

      public DesensitizeJsonSerializer()
    • DesensitizeJsonSerializer

      public DesensitizeJsonSerializer(DesensitizeType type, int prefixKeep, int suffixKeep, char replacer)
  • Method Details

    • serialize

      public void serialize(String value, tools.jackson.core.JsonGenerator gen, tools.jackson.databind.SerializationContext ctxt) throws tools.jackson.core.JacksonException
      Specified by:
      serialize in class tools.jackson.databind.ValueSerializer<String>
      Throws:
      tools.jackson.core.JacksonException
    • createContextual

      public tools.jackson.databind.ValueSerializer<?> createContextual(tools.jackson.databind.SerializationContext ctxt, tools.jackson.databind.BeanProperty property) throws tools.jackson.core.JacksonException
      Overrides:
      createContextual in class tools.jackson.databind.ValueSerializer<String>
      Throws:
      tools.jackson.core.JacksonException