1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package com.linecorp.centraldogma.server.auth;
17
18 import java.io.ByteArrayOutputStream;
19 import java.io.IOException;
20 import java.io.ObjectOutputStream;
21 import java.io.Serializable;
22 import java.util.Base64;
23
24 import com.fasterxml.jackson.core.JsonGenerator;
25 import com.fasterxml.jackson.databind.SerializerProvider;
26 import com.fasterxml.jackson.databind.ser.std.StdSerializer;
27
28
29
30
31 public final class RawSessionJsonSerializer extends StdSerializer<Serializable> {
32
33 private static final long serialVersionUID = -8209099521255193022L;
34
35
36
37
38 public RawSessionJsonSerializer() {
39 super(Serializable.class);
40 }
41
42 @Override
43 public void serialize(Serializable value, JsonGenerator gen, SerializerProvider provider)
44 throws IOException {
45
46 try (ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
47 ObjectOutputStream oos = new ObjectOutputStream(baos)) {
48 oos.writeObject(value);
49 oos.flush();
50 gen.writeString(Base64.getEncoder().encodeToString(baos.toByteArray()));
51 }
52 }
53 }