Backslash in a Xwiki Page - now unaccessible - unable to rename it

Hi There,

i have a big Problem. One of my Users created a Site with an backslash \ in the Document Name. Now the Page is unaccesible and i Could not rename it.

If found a interesting Script here: http://snippets.xwiki.org/xwiki/bin/view/Extension/Clean%20slashes%20from%20document%20names

But when i save the Page i have only the Button:

How can i bring this Script to work or is there another way?

Under this Site are Another Sites which critcal Informations which we need.

FYI: the org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
in the catalina properties is already set.

Thanks for your Help

Although I agree it is not a very good idea to use \ in a document path, if not supported, it should not be allowed by xWiki UI.

I just tried it with 9.11 with the following result:

  • Creating a page with a \ in the name does not work (maybe because the Realtime Editor), since
  • Renaming a page without \ to a name with \ works (but only if Realtime is disabled, otherwise one cannot save)

image

Exactly. Have you an Idea how to rename it?
When i try to rename or browse the Site, i become in XWIKI 8.4.5 only a blank page in Browser.

Can anyone help me? Is it possible to to change the Sitename somehow in the Database directly or another Easy way?

You’re correct. But it is supported :slight_smile:

The Realtime Editor you mention is an extension, not part of the base product. It’s also not supported by the XWiki Core Dev team either (check the extension).

Last, if there’s a problem with it, it would be nice to raise a jira issue for it at:

Thanks

You should be able to delete using a script, see http://snippets.xwiki.org/xwiki/bin/view/Extension/Delete%20page%20programatically/ for example.

Hi Vincent,

Thanks for your help. Unfortunatelly the Script does not work. I could delte any other Site, but mit the \ The Script says that the Site could not be found. :(.

I Exported all Subtrees in HTML and delete the Site above the Problemsite with the “” inkl. Childreens. Now it is gone and i recreated all Sites I lost thorugh this.

Not nice and take time but it works :wink:

Well, as I didn’t find a way to disable the RT functionality globally, I uninstalled the extensions with the following result on 9.11:

  • Creating a page with a name “Back\Slash” will result in a blank page with no HTML at all
  • When creating a page without a" " renameing that page to “Back\Slash” works (probably because the document URL path remains the same as the initial name)

Then I should create two Jira, one for xwiki and own for the RTWYSIWYG one?

As I said I tested on a recent version of XWiki and backslashes were working fine for me. The most likely reason it’s not for you is that you’re using a misconfigured Tomcat or that you have some front end web server or proxy that is not configured properly.

You can try with a pristine XWiki version on Jetty for example (the HSQLDB/Jetty package we offer for ex) to try it for yourself but make sure it’s installed locally without any front end to Jetty.

So before raising any JIRA we need to find out what’s the issue with your environment.

Thanks

Note that this also suggests that the RT editor is probably not the issue.

For the testing instance there is no reverse proxy in my case (http://10.255.30.41:8080/xwiki/bin/view/Main/). So this can be ruled out …

What is a “recent” version in your view? 10 or 9?

This is what I see in the access_log:
[01/Mar/2018:09:58:41 +0100] “GET /xwiki/bin/edit/Back%5Cagain/WebHome?template=&parent=Main.WebHome&title=Back%5Cagain HTTP/1.1” 400 -

400 => Bad request (probably does not even get processed by the java code)

Official playground and wiki are 8.4.4 so probably not recent enough to test …

However, as you state it works in a standard configuration, no further testing necessary …

400 is returned by XWiki when a page is not found.

Are you using a web server in front of the Servlet container (Tomcat) or is this access log is from Tomcat?

Could you verify that you’re passing this to Tomcat:

-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true 
-Dorg.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true

Thx

No, I access tomcat directly for the test environment …

Nope, I didn’t supply that as I was not aware of it. I was aware of the

but not of the BACKSLASH option.

Adding this solves all issues, also with the RTWYSIWYG!
Thank you for pointing this out.

I’ve also updated http://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Installation/InstallationWAR/InstallationTomcat/#HAllowing222F22and225C22inpagenames

A+
Note: maybe not valid, but either use both samples with “-Dxxx” or without on the referenced wiki page?

Feel fee to improve it

They’re not the same. I explained the system property names to pass and then I’ve shown an example of passing them.

After spending (to much) time on providing an guide on how to enable the system properties in tomcat on different OS and so on, I surrender :wink:
I now added a more generic hint - please review it if this makes sense …