Accept utf BOM prefix in imported xml file

This commit is contained in:
Claude Brisson
2024-01-25 21:56:30 +01:00
parent 3db1257469
commit 4278fe9b46
2 changed files with 8 additions and 1 deletions

View File

@@ -154,6 +154,11 @@
<artifactId>commons-lang3</artifactId> <artifactId>commons-lang3</artifactId>
<version>3.12.0</version> <version>3.12.0</version>
</dependency> </dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.13.0</version>
</dependency>
<!-- auth --> <!-- auth -->
<dependency> <dependency>
<groupId>org.pac4j</groupId> <groupId>org.pac4j</groupId>

View File

@@ -1,6 +1,7 @@
package org.jeudego.pairgoth.server package org.jeudego.pairgoth.server
import com.republicate.kson.Json import com.republicate.kson.Json
import org.apache.commons.io.input.BOMInputStream
import org.jeudego.pairgoth.api.ApiHandler import org.jeudego.pairgoth.api.ApiHandler
import org.jeudego.pairgoth.api.PairingHandler import org.jeudego.pairgoth.api.PairingHandler
import org.jeudego.pairgoth.api.PlayerHandler import org.jeudego.pairgoth.api.PlayerHandler
@@ -17,6 +18,7 @@ import org.jeudego.pairgoth.util.toString
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import org.w3c.dom.Element import org.w3c.dom.Element
import java.io.IOException import java.io.IOException
import java.io.InputStreamReader
import java.util.* import java.util.*
import java.util.concurrent.locks.ReadWriteLock import java.util.concurrent.locks.ReadWriteLock
import java.util.concurrent.locks.ReentrantReadWriteLock import java.util.concurrent.locks.ReentrantReadWriteLock
@@ -194,7 +196,7 @@ class ApiServlet: HttpServlet() {
// some API calls like opengotha import accept xml docs as body // some API calls like opengotha import accept xml docs as body
// CB TODO - limit to those calls // CB TODO - limit to those calls
try { try {
XmlUtils.parse(request.reader).let { payload: Element -> XmlUtils.parse(InputStreamReader(BOMInputStream(request.inputStream))).let { payload: Element ->
request.setAttribute(ApiHandler.PAYLOAD_KEY, payload) request.setAttribute(ApiHandler.PAYLOAD_KEY, payload)
logger.info(blue("<< (xml document)")) logger.info(blue("<< (xml document)"))