1
2
3
4
5
6
7
8
9
10
11
12
13
14 package org.gbif.ws.security;
15
16 import org.gbif.ws.CommonRuntimeException;
17
18 import java.io.IOException;
19 import java.util.Base64;
20
21 import org.apache.commons.codec.digest.DigestUtils;
22 import org.slf4j.Logger;
23 import org.slf4j.LoggerFactory;
24 import org.springframework.stereotype.Service;
25
26 import com.fasterxml.jackson.databind.ObjectMapper;
27
28 @Service
29 public class Md5EncodeServiceImpl implements Md5EncodeService {
30
31 private static final Logger LOG = LoggerFactory.getLogger(Md5EncodeServiceImpl.class);
32
33 private ObjectMapper mapper;
34
35
36 public Md5EncodeServiceImpl(ObjectMapper mapper) {
37 this.mapper = mapper;
38 }
39
40
41
42
43
44
45 @Override
46 public String encode(Object entity) {
47 try {
48 byte[] content = mapper.writeValueAsBytes(entity);
49
50
51 return Base64.getEncoder().encodeToString(DigestUtils.md5(content));
52 } catch (IOException e) {
53 LOG.error("Failed to serialize http entity [{}]", entity);
54 throw new CommonRuntimeException(e);
55 }
56 }
57 }