Re: Incorrect string replacement order in Camel SNMP?

2015-10-02 Thread Claus Ibsen
Hi

Thanks for spotting. You are welcome to log a JIRA and work on a PR or patch.
http://camel.apache.org/contributing

On Sat, Oct 3, 2015 at 3:06 AM, Dmitry Zolotukhin  wrote:
> Hi,
>
> In Camel SNMP, the org.apache.camel.component.snmp.SnmpConverters
> class has a static “getXmlSafeString” method which escapes unsafe
> characters by replacing them. However, the order of applying
> replacements is not correct:
>
> private static String getXmlSafeString(String string) {
>
> return string.replaceAll("<", "").replaceAll(">",
> "").replaceAll("&", "").replaceAll("\"",
> "").replaceAll("'", "");
>
> }
>
>
> It replaces “<” with “” at first, then the “&” is replaced with
> “”. This means that a “<” character in the input string will be
> changed to “”, and then into “lt;”, which is not the intended
> behavior.
>
> This could be fixed by applying the “replaceAll("&", "")”
> transformation first.
>
> --
> Best regards,
> Dmitry



-- 
Claus Ibsen
-
http://davsclaus.com @davsclaus
Camel in Action 2nd edition:
https://www.manning.com/books/camel-in-action-second-edition


Incorrect string replacement order in Camel SNMP?

2015-10-02 Thread Dmitry Zolotukhin
Hi,

In Camel SNMP, the org.apache.camel.component.snmp.SnmpConverters
class has a static “getXmlSafeString” method which escapes unsafe
characters by replacing them. However, the order of applying
replacements is not correct:

private static String getXmlSafeString(String string) {

return string.replaceAll("<", "").replaceAll(">",
"").replaceAll("&", "").replaceAll("\"",
"").replaceAll("'", "");

}


It replaces “<” with “” at first, then the “&” is replaced with
“”. This means that a “<” character in the input string will be
changed to “”, and then into “lt;”, which is not the intended
behavior.

This could be fixed by applying the “replaceAll("&", "")”
transformation first.

--
Best regards,
Dmitry