D Groß created CMIS-1118:
----------------------------
Summary: Xml Parsing/DTD Exception
Key: CMIS-1118
URL: https://issues.apache.org/jira/browse/CMIS-1118
Project: Chemistry
Issue Type: Bug
Components: portcmis
Affects Versions: PortCMIS 0.3.0
Reporter: D Groß
Hi,
I think the issue that I am experiencing is similar to a previously fixed
DotCMIS issue that was submitted
(https://issues.apache.org/jira/browse/CMIS-902).
I am running a .Net Core 3.1 project with PortCMIS and I am receiving a Xml
parsing exception ("For security reasons DTD is prohibited in this XML
document. To enable DTD processing set the DtdProcessing property on
XmlReaderSettings to Parse and pass the settings into XmlReader.Create method")
when I attempt to consume a CMIS endpoint via the AtomPub binding.
Stack Trace:
at PortCMIS.Binding.AtomPub.AbstractAtomPubService.Parse[T](Stream stream)
at
PortCMIS.Binding.AtomPub.AbstractAtomPubService.GetRepositoriesInternal(String
repositoryId)
at PortCMIS.Binding.AtomPub.RepositoryService.GetRepositoryInfo(String
repositoryId, IExtensionsData extension)
at PortCMIS.Binding.Impl.BindingRepositoryService.GetRepositoryInfo(String
repositoryId, IExtensionsData extension)
at PortCMIS.Client.Impl.Session.Connect()
at PortCMIS.Client.Impl.SessionFactory.CreateSession(IDictionary`2 parameters,
IObjectFactory objectFactory, IAuthenticationProvider authenticationProvider,
ICache cache
Inner Exception Details:
For security reasons DTD is prohibited in this XML document. To enable DTD
processing set the DtdProcessing property on XmlReaderSettings to Parse and
pass the settings into XmlReader.Create method."} System.Exception
\{System.Xml.XmlException}
StackTrace:
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.ParseDoctypeDecl()
at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
at System.Xml.XmlTextReaderImpl.Read()
at PortCMIS.Binding.AtomPub.AtomPubParser.Parse()
at PortCMIS.Binding.AtomPub.AbstractAtomPubService.Parse[T](Stream stream)
I think an easy fix to this problem would be to add "DtdProcessing =
DtdProcessing.Ignore" to the XmlUtils.CreateParser 's XmlReaderSettings
initialization list.
SRC:
[https://svn.apache.org/repos/asf/chemistry/portcmis/trunk/PortCMIS/binding/atompub/XmlUtils.cs]
FROM:
XmlReaderSettings settings = new XmlReaderSettings()
{
MaxCharactersInDocument = 0,
CloseInput = true
};
TO:
XmlReaderSettings settings = new XmlReaderSettings()
{
MaxCharactersInDocument = 0,
CloseInput = true,
DtdProcessing = DtdProcessing.Ignore
};
Thanks
--
This message was sent by Atlassian Jira
(v8.3.4#803005)