vrk-kpa / xroad-joint-development

Unmaintained repository. Development moved to: https://github.com/nordic-institute/X-Road-development
19 stars 8 forks source link

BUG: Consumer security server fails to parse the returned SOAP message containing & or < entities #128

Closed VitaliStupin closed 7 years ago

VitaliStupin commented 7 years ago

Affected components: proxy Affected documentation: - Estimated delivery: - External reference: https://jira.ria.ee/browse/XTE-262, https://jira.ria.ee/browse/XTE-333

Problem Consumer security server fails to parse the returned SOAP message. The bug occurs when the XML elements of the SOAP message returned from the information service contains & or <.

For example:

   <soapenv:Header>
      <xro:id>Ernst &amp; Young Oy</xro:id>

Would result in:

2017-03-08 15:06:40,411 [qtp1807894765-313] ERROR e.r.x.p.c.AbstractClientProxyHandler - Request processing error (9ee10907-46ec-47eb-b6a0-0d26c9f1ec62) 
ee.ria.xroad.common.CodedException: Server.ClientProxy.ServiceFailed.InvalidSoap: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 735; The entity name must immediately follow the '&' in the entity reference. 
at ee.ria.xroad.common.ErrorCodes.translateException(ErrorCodes.java:209) ~[proxy-1.0.jar:na] 
at ee.ria.xroad.common.message.SaxSoapParserImpl.parse(SaxSoapParserImpl.java:210) ~[proxy-1.0.jar:na] 
at ee.ria.xroad.proxy.protocol.ProxyMessageDecoder.handleSoap(ProxyMessageDecoder.java:318) ~[proxy-1.0.jar:na] 
at ee.ria.xroad.proxy.protocol.ProxyMessageDecoder.access$400(ProxyMessageDecoder.java:71) ~[proxy-1.0.jar:na] 
at ee.ria.xroad.proxy.protocol.ProxyMessageDecoder$ContentHandler.body(ProxyMessageDecoder.java:233) ~[proxy-1.0.jar:na] 
at org.apache.james.mime4j.parser.MimeStreamParser.parse(MimeStreamParser.java:133) ~[proxy-1.0.jar:na] 
at ee.ria.xroad.proxy.protocol.ProxyMessageDecoder.parseMultipart(ProxyMessageDecoder.java:186) ~[proxy-1.0.jar:na] 
at ee.ria.xroad.proxy.protocol.ProxyMessageDecoder.parse(ProxyMessageDecoder.java:142) ~[proxy-1.0.jar:na] 
at ee.ria.xroad.proxy.clientproxy.ClientMessageProcessor.parseResponse(ClientMessageProcessor.java:348) ~[proxy-1.0.jar:na] 
at ee.ria.xroad.proxy.clientproxy.ClientMessageProcessor.processRequest(ClientMessageProcessor.java:243) ~[proxy-1.0.jar:na] 

Problem probably occurs while producer proxy is adding requestHash header to the response.

Acceptance criteria

VitaliStupin commented 7 years ago

Released in version 6.12.0