@@ -4,9 +4,15 @@ import com.fasterxml.jackson.databind.ObjectMapper
4
4
import io.firetail.logging.core.FiretailData
5
5
import io.firetail.logging.core.FtRequest
6
6
import io.firetail.logging.core.FtResponse
7
+ import io.firetail.logging.core.FiretailTemplate
7
8
import jakarta.servlet.http.HttpServletRequest
8
9
import jakarta.servlet.http.HttpServletResponse
10
+ import io.firetail.logging.servlet.SpringResponseWrapper
9
11
import java.util.HashMap
12
+ import java.io.StringWriter
13
+ import java.io.InputStreamReader
14
+ import org.slf4j.LoggerFactory
15
+ import java.nio.charset.Charset
10
16
11
17
class FiretailMapper {
12
18
private val objectMapper = ObjectMapper ()
@@ -20,10 +26,14 @@ class FiretailMapper {
20
26
.mapIndexed { _, value -> value to listOf (request.getHeader(value)) }
21
27
.toMap()
22
28
29
+ val writer = StringWriter ()
30
+ InputStreamReader (request.inputStream, " UTF-8" ).transferTo(writer)
31
+
23
32
return FtRequest (
24
33
httpProtocol = request.protocol,
25
34
method = request.method,
26
35
headers = headers,
36
+ body = writer.toString(),
27
37
ip = request.remoteAddr,
28
38
resource = request.requestURI,
29
39
uri = request.requestURL.toString(), // FT calls the defines the URI as URL.
@@ -34,9 +44,13 @@ class FiretailMapper {
34
44
val headers = response.headerNames
35
45
.mapIndexed { _, value -> value to listOf (response.getHeader(value)) }
36
46
.toMap()
47
+
48
+ val wrappedResponse = SpringResponseWrapper (response)
49
+ val charset: Charset = Charsets .UTF_8
50
+
37
51
return FtResponse (
38
52
statusCode = response.status,
39
- body = " " ,
53
+ body = String (wrappedResponse.contentAsByteArray, charset) ,
40
54
headers = headers,
41
55
)
42
56
}
@@ -49,4 +63,8 @@ class FiretailMapper {
49
63
fun from (fireTailData : List <FiretailData >): String {
50
64
return fireTailData.joinToString(" \n " ) { objectMapper.writeValueAsString(it) }
51
65
}
66
+
67
+ companion object {
68
+ private val LOGGER = LoggerFactory .getLogger(FiretailTemplate ::class .java)
69
+ }
52
70
}
0 commit comments