package com.github.rojanu.config.encryption; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; public class EncryptedStringDeserializer extends JsonDeserializer<String> { public static final Logger logger = LoggerFactory.getLogger(EncryptedStringDeserializer.class); private final StringEncryptor stringEncryptor; public EncryptedStringDeserializer(StringEncryptor stringEncryptor) { this.stringEncryptor = stringEncryptor; } @Override public String deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { String str = jp.getText(); if (str == null) { return null; } else { return stringEncryptor.decrypt(str); } } }