Jackson
是Java平台非常流行的JSON解析框架,而且扩展性很强,本文通过添加一个Module来加强JSON字段的解析来实现单个字段的加密与解密功能。
基本想法是使用Jackson
来处理自定义的注解,在需要加密/解密的字段上添加上相应的注解,先定义个自定义的注解:
@JacksonAnnotation
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
public @interface Encrypt {}
复制代码
然后在需要在POJO中对字段添加@Encrypt
注解:
public final class User {
@Encrypt
private String name;
private String guid;
@Encrypt
private User first;
@Encrypt
private int age;
//... getters/setters
}
复制代码
完成上面的工作后,然后再来扩展Jackson
来处理@Encrypt
注解进行字段加密,先定义个Jackson
的Module:
public class EncryptionModule extends Module {
public final static String ARTIFACT_ID = "jackson-hb-encryption";
public final