Hi Apollo,
We discovered that behaviour some time ago.
Just to clarify the problem for everyone:
It seems that the GSA encodes internally custom params (for security
reasons, XSS).
The problem comes from the XML response, is not on the XSLT.
There´s no simple way of decoding them back based on the
"original_value" atribute from the XML.
If we search:
<<GSA>>/search?
site=default_collection&client=default_frontend&output=xml_no_dtd&customParam=http
%3A%2F%
2Fwww.abc.com%2FService%26operation
The values shown on the XML for the customParam are:
value="
http://www.abc.com/Service_operation"
original_value="http%3A%2F%
2Fwww.abc.com%2FService%26operation"
The best to solve this is to decode params from the "original_value"
attribute.
If you want to try it, theres a nice stylesheet you could use:
http://skew.org/xml/stylesheets/url-encode/
(Easier) Method 2: Pass those restricted values using custom encoding.
For example:
You could use:
<<GSA>>/search?
site=default_collection&client=default_frontend&output=xml_no_dtd&customParam=http
%3A%2F%
2Fwww.abc.com%2FService(((26operation
And then in the XSLT, replace each (((26 with an ampersand.
There are only a few params that get encoded. (&, <, >...)
A dirty workaround (I dont recommend this) is use some of the already
defined params that you don´t need.
Some params do not encode the values you pass.Try getfields or entsp.
<<GSA>>/search?
site=default_collection&client=default_frontend&output=xml_no_dtd&entsp=http
%3A%2F%
2Fwww.abc.com%2FService%26operation
But these params are actually used by the GSA on some cases, so I won
´t use them on a real case scenario.
Please let me know if this information was helpful.
Best regards,
Pablo Solera
www.ti.eptisa.com