4289Re: [soaplite] XML Fragment in String Data causes Soap Error ...
- Jan 6, 2005On Thu, 6 Jan 2005, etaekema wrote:
>It's a problem with the SOAP client -- they're not escaping entities.
> Hello everyone. I have a fairly simple soap server that takes input
> from a customer issue management system and transfers them to a
> different issue management tool. The trouble I am having is that
> some of the data is "free form" entry and is likely to have
> incomplete / partial xml tags in the data. All the data passed to
> the webservice are String types and when the soap::lite server
> receives the data it is choking on the partial/embedded data in the
> string .... I don't have a lot of control on the sending side ... Is
> there an encoding trick to solve this?
> Something as simple as this fails ...
> my $issue_description="The <tag> configuration doesn't work";
> my $result = $service->submitIssue($issue_description);
> because the <tag> item isn't closed .... but since this is just user
> entered text ... there isn't much I can do about it ...
use CGI ( escapeHTML );
my $result = $service->submitIssue( escapeHTML($issue_description) );
If the client was SOAP::Lite, it should've done it for you, unless you've
overriden the serializer. [which I did once, and tried just marking
strings as CDATA, but the SOAP::Lite deserializer choked hard on it]
If you only have access to the server, you might want to make check
_exactly_ what had been received, and verify if it's coming in unescaped.
if it is, you need to fix the non-compliant client. If it isn't, or if
it's marking the strings as DATA or CDATA, rather than encoding the
entities, you'll need to modify the deserializer to support that.
- << Previous post in topic Next post in topic >>