Skip to content

Commit cc28093

Browse files
author
tkaldahl_xirgo
committed
Merge develop into master for release
2 parents 1bcc048 + fbee8b3 commit cc28093

19 files changed

Lines changed: 120 additions & 33 deletions

File tree

actions/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<parent>
2626
<groupId>io.em2m.sdk</groupId>
2727
<artifactId>em2m-java-sdk-pom</artifactId>
28-
<version>2.92.0</version>
28+
<version>2.93.0</version>
2929
</parent>
3030

3131
<packaging>jar</packaging>

actions/src/main/java/io/em2m/actions/lambda/LambdaRuntime.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import io.em2m.actions.model.ActionProcessor
77
import io.em2m.actions.model.MultipartData
88
import io.em2m.problem.Problem
99
import io.em2m.policy.model.Claims
10+
import io.em2m.utils.parseCharset
1011
import java.util.*
1112

1213
open class LambdaRuntime(
@@ -22,10 +23,13 @@ open class LambdaRuntime(
2223
// TODO: Detect and pars MultiPart
2324
val multipart: MultipartData? = null
2425

26+
val contentType = request.contentType
27+
val charset = parseCharset(contentType)
28+
2529
val context = ActionContext(
2630
actionName = "$actionPrefix:$actionName",
2731
claims = Claims(),
28-
inputStream = request.body?.toByteArray()?.inputStream() ?: byteArrayOf().inputStream(),
32+
inputStream = request.body?.toByteArray(charset)?.inputStream() ?: byteArrayOf().inputStream(),
2933
environment = env.toMutableMap(),
3034
multipart = multipart,
3135
response = response)

actions/src/main/java/io/em2m/actions/xforms/JacksonRequestTransformer.kt

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@ import io.em2m.actions.model.TypedActionFlow
1111
import io.em2m.problem.Problem
1212
import io.em2m.simplex.evalPath
1313
import io.em2m.utils.coerce
14+
import io.em2m.utils.parseCharset
1415
import org.xerial.snappy.SnappyInputStream
1516
import java.io.ByteArrayOutputStream
1617
import java.io.IOException
1718
import java.io.InputStream
19+
import java.nio.charset.Charset
1820
import java.util.*
1921
import java.util.zip.DeflaterInputStream
2022
import java.util.zip.GZIPInputStream
@@ -33,6 +35,8 @@ class JacksonRequestTransformer(
3335

3436
val contentType = (ctx.environment["ContentType"] as? String ?: "").lowercase(Locale.getDefault())
3537

38+
val charset = parseCharset(contentType)
39+
3640
if (contentType.contains("xml")) return
3741

3842
try {
@@ -43,7 +47,7 @@ class JacksonRequestTransformer(
4347
"snappy" -> SnappyInputStream(ctx.inputStream)
4448
else -> ctx.inputStream
4549
}
46-
val sanitizedInputStream = sanitizeInputStream(inputStream)
50+
val sanitizedInputStream = sanitizeInputStream(inputStream, charset)
4751
val obj = objectMapper.readValue(sanitizedInputStream, type)
4852
// val obj = objectMapper.readValue(inputStream, type)
4953
ctx.request = obj
@@ -92,25 +96,14 @@ class JacksonRequestTransformer(
9296
}
9397
}
9498

95-
private fun sanitizeInputStream(inputStream: InputStream?): InputStream? {
99+
private fun sanitizeInputStream(inputStream: InputStream?, charset: Charset = Charsets.UTF_8): InputStream? {
96100
if (inputStream == null) {
97101
return null
98102
}
99103

100-
val buffer = ByteArray(8192)
101-
val outputStream = ByteArrayOutputStream()
102-
103-
inputStream.buffered().use { input ->
104-
outputStream.use { output ->
105-
var bytesRead: Int
106-
while (input.read(buffer).also { bytesRead = it } != -1) {
107-
val sanitizedChunk = removeScriptTags(String(buffer, 0, bytesRead))
108-
output.write(sanitizedChunk.toByteArray())
109-
}
110-
}
111-
}
112-
113-
return outputStream.toByteArray().inputStream()
104+
val request = inputStream.reader(charset).use { it.readText() }
105+
val sanitized = removeScriptTags(request)
106+
return sanitized.byteInputStream(charset)
114107
}
115108

116109
private fun removeScriptTags(input: String): String {

actions/src/test/java/io/em2m/actions/JacksonRequestTransformerTest.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,12 @@ class JacksonRequestTransformerTest {
3535
)
3636
)
3737

38+
val charset = Charsets.UTF_8
39+
3840
val testContext = ActionContext(
3941
actionName = "TestService:TestAction",
4042
claims = Claims(),
41-
inputStream = testRequest.body?.toByteArray()?.inputStream() ?: byteArrayOf().inputStream(),
43+
inputStream = testRequest.body?.toByteArray(charset)?.inputStream() ?: byteArrayOf().inputStream(),
4244
response = LambdaResponse(),
4345
environment = mutableMapOf(
4446
"ContentType" to "application/json"

ext/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<parent>
2626
<groupId>io.em2m.sdk</groupId>
2727
<artifactId>em2m-java-sdk-pom</artifactId>
28-
<version>2.92.0</version>
28+
<version>2.93.0</version>
2929
</parent>
3030

3131
<packaging>jar</packaging>

geo/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<parent>
2626
<groupId>io.em2m.sdk</groupId>
2727
<artifactId>em2m-java-sdk-pom</artifactId>
28-
<version>2.92.0</version>
28+
<version>2.93.0</version>
2929
</parent>
3030

3131
<packaging>jar</packaging>

policy/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<parent>
2626
<groupId>io.em2m.sdk</groupId>
2727
<artifactId>em2m-java-sdk-pom</artifactId>
28-
<version>2.92.0</version>
28+
<version>2.93.0</version>
2929
</parent>
3030

3131
<packaging>jar</packaging>

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<artifactId>em2m-java-sdk-pom</artifactId>
2727
<packaging>pom</packaging>
2828
<name>em2m-java-sdk-pom</name>
29-
<version>2.92.0</version>
29+
<version>2.93.0</version>
3030

3131
<modules>
3232
<module>utils</module>

problem/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@
2525
<parent>
2626
<groupId>io.em2m.sdk</groupId>
2727
<artifactId>em2m-java-sdk-pom</artifactId>
28-
<version>2.92.0</version>
28+
<version>2.93.0</version>
2929
</parent>
3030

3131
<packaging>jar</packaging>
3232
<artifactId>em2m-java-sdk-problem</artifactId>
33-
<version>2.92.0</version>
33+
<version>2.93.0</version>
3434
<name>em2m-java-sdk-problem</name>
3535

3636
<dependencies>

search/bean/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<parent>
2626
<groupId>io.em2m.sdk</groupId>
2727
<artifactId>em2m-java-sdk-pom</artifactId>
28-
<version>2.92.0</version>
28+
<version>2.93.0</version>
2929
<relativePath>../../pom.xml</relativePath>
3030
</parent>
3131

0 commit comments

Comments
 (0)