You can write your own HTTP message converter. Since you are using spring boot, it will be pretty simple: just add your custom converter from AbstractHttpMessageConverter and mark the class with @Component annotation.
From spring docs :
You can add additional converters by simply adding beans of this type to the spring boot context. If the added bean is a type that would be enabled by default anyway (for example, MappingJackson2HttpMessageConverter for JSON conversions), then it will replace the default value.
And here is a simple example:
@Component public class Converter extends AbstractHttpMessageConverter<Object> { public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); @Inject private ObjectMapper objectMapper; public Converter(){ super(MediaType.APPLICATION_JSON_UTF8, new MediaType("application", "*+json", DEFAULT_CHARSET)); } @Override protected boolean supports(Class<?> clazz) { return true; } @Override protected Object readInternal(Class<? extends Object> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException { return objectMapper.readValue(decrypt(inputMessage.getBody()), clazz); } @Override protected void writeInternal(Object o, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException { outputMessage.getBody().write(encrypt(objectMapper.writeValueAsBytes(o))); } private InputStream decrypt(InputStream inputStream){
eparvan
source share