diff --git a/api-webapp/pom.xml b/api-webapp/pom.xml index 25752af..2053ba1 100644 --- a/api-webapp/pom.xml +++ b/api-webapp/pom.xml @@ -154,6 +154,11 @@ commons-lang3 3.12.0 + + commons-io + commons-io + 2.13.0 + org.pac4j diff --git a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/ApiServlet.kt b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/ApiServlet.kt index 723cae9..343dfc3 100644 --- a/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/ApiServlet.kt +++ b/api-webapp/src/main/kotlin/org/jeudego/pairgoth/server/ApiServlet.kt @@ -1,6 +1,7 @@ package org.jeudego.pairgoth.server import com.republicate.kson.Json +import org.apache.commons.io.input.BOMInputStream import org.jeudego.pairgoth.api.ApiHandler import org.jeudego.pairgoth.api.PairingHandler import org.jeudego.pairgoth.api.PlayerHandler @@ -17,6 +18,7 @@ import org.jeudego.pairgoth.util.toString import org.slf4j.LoggerFactory import org.w3c.dom.Element import java.io.IOException +import java.io.InputStreamReader import java.util.* import java.util.concurrent.locks.ReadWriteLock import java.util.concurrent.locks.ReentrantReadWriteLock @@ -194,7 +196,7 @@ class ApiServlet: HttpServlet() { // some API calls like opengotha import accept xml docs as body // CB TODO - limit to those calls try { - XmlUtils.parse(request.reader).let { payload: Element -> + XmlUtils.parse(InputStreamReader(BOMInputStream(request.inputStream))).let { payload: Element -> request.setAttribute(ApiHandler.PAYLOAD_KEY, payload) logger.info(blue("<< (xml document)"))