Hi Edo,
XWiki has indeed problems with action_ request parameters. In my case
the action_type_map and the action_ref_map parameters caused the problems.
My solution is an apache RewriteRule (my xwiki instance is running
behind an apache http server).
RewriteCond %{QUERY_STRING} ^(.*)(^|&|%26|%20)action_.*_map=[^&]+(.*)$
RewriteRule ^(.*) $1?%1%3 [R=307]
This rule deletes all action_*_map parameters from the request string.
Thank you for your help
Richard
Am 23.01.2014 14:31, schrieb Edo Beutler:
Hi Richard
I don't think it's a character encoding problem. Facebook creates many
millions of these links each day. If there were an encoding problem the
internet would be full of it.
Furthermore, I ran into the same (I think) problem a few months ago. I
found that xwiki claims all parameters starting in 'action_'. After finding
the problem, Vincent was so kind as to point me to:
In ActionFilter.java:
...
if (parameter.startsWith(ACTION_PREFIX)) {
…
where:
/** The query property name prefix that indicates the target action. */
private static final String ACTION_PREFIX = "action_";
This code is in a Filter. FTR here's its javadoc:
* A filter that dispatches requests to the right action, depending on the
button that was pressed in the editing form.
* This is needed since the browser cannot send the form data to different
URLs depending on the button pressed, and an
* XHTML form has only one target URL. In previous versions of XWiki this
was accomplished using javascript code, with a
* fall-back on a pseudo-dispatcher inside the {@link PreviewAction}, which
was on obvious case of bad code design.
* </p>
* <p>
* The filter dispatches requests based on the presence of a request
parameter starting with <tt>action_</tt> followed
* by the name of the struts action that should actually process the
request. For example, the button that does
* <tt>Save and Continue</tt> looks like:
*
* <pre>
* <input type="submit"
name="action_saveandcontinue" value="..."/>
* </pre>
*
* As a result, when clicking the button, the request is not sent to the
form's target (<tt>preview</tt>), but is
* actually forwarded internally to
<tt>/bin/saveandcontinue/The/Document</tt>.
* </p>
You can find our "solution" for the problem on
https://github.com/celements/celements-core/blob/dev/src/main/java/com/xpn/…
Be aware that this is not a good (robust) solution, but a quick fix just
for these Facebook links and there is no guarantee that sooner or later a
similar problem will not pop up again.
Hope this helps.
Edo
On Wed, Jan 22, 2014 at 2:43 PM, vincent(a)massol.net <vincent(a)massol.net>wrote;wrote:
Hi Richard,
Indeed, the { character needs to be escaped. check section 2.4.3 of the
spec at
http://www.ietf.org/rfc/rfc2396.txt, specifically:
------
Other characters are excluded because gateways and other transport
agents are known to sometimes modify such characters, or they are
used as delimiters.
unwise = "{" | "}" | "|" | "\" |
"^" | "[" | "]" | "`"
Data corresponding to excluded characters must be escaped in order to
be properly represented within a URI.
------
Thanks
-Vincent
On 22 Jan 2014 at 14:28:42, Richard Hierlmeier (rhierlmeier(a)googlemail.com
(mailto:rhierlmeier@googlemail.com)) wrote:
Hi Vincent,
I get the following exception:
java.net.URISyntaxException: Illegal character in query at index 160:
http://
???????????????????????????/bin/ref_map/Main/WebHome?fb_action_ids=22334241213413241&fb_action_types=og.likes&fb_source=feed_opengraph&action_object_map={%22334241213413241%22%3A211180592403908}&action_type_map={%22334241213413241%22%3A%22og.likes%22}&action_ref_map=[]
at java.net.URI$Parser.fail(URI.java:2829)
at java.net.URI$Parser.checkChars(URI.java:3002)
at java.net.URI$Parser.parseHierarchical(URI.java:3092)
at java.net.URI$Parser.parse(URI.java:3034)
at
It's the { character after action_type_map.
Do I have a character encoding problem?
The XWiki instance is running in tomcat behind a Apache http instance.
It is connection via mod_proxy and ajp. Here is my Apache configuration:
ProxyPreserveHost On
ProxyPass / ajp://localhost:9080/
ProxyPassReverse / http://???????????????????????????/
Here ist the ajp connector configuration from server.conf
maxThreads="20"
URIEncoding="UTF-8"/>
Thank you
Richard
Am 22.01.2014 13:54, schrieb Vincent Massol:
> Hi Richard,
>
> On 21 Jan 2014, at 21:07, Richard Hierlmeier wrote:
>
>>
>> I have a Facebook like Button on my xwiki instance. When clicking on
the
button in facebook the following link is created:
>>
>> http://
/bin/view/Main/Sample?fb_action_ids=22334241213413241&fb_action_types=og.likes&fb_source=feed_opengraph&action_object_map={%22334241213413241%22%3A211180592403908}&action_type_map={%22334241213413241%22%3A%22og.likes%22}&action_ref_map=[]
>>
>> However XWiki can not handle this link correctly. When clicking on it
I
get the following error message (it's in german language):
>>
>>> Hinweis
>>>
>>> Während der Verarbeitung Ihrer Anfrage trat ein Problem auf. Bitte
>>> verständigen Sie den Webmaster, falls der Fehler erneut auftritt.
>>
>> How can I solve this problem?
>
> I don’t see any reason why XWiki would care about anything put after
the ?
unless it contains a parameter that xwiki uses (like “rev”).
What error do you get in the xwiki logs?
Thanks
-Vincent
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users