On Thu, Apr 14, 2016 at 7:46 PM, Vincent Massol <[email protected]> wrote:
> > > On 14 Apr 2016, at 16:52, Marius Dumitru Florea < > [email protected]> wrote: > > > > On Thu, Apr 14, 2016 at 5:43 PM, Vincent Massol <[email protected]> > wrote: > > > >> Hi devs, > >> > >> I’m implementing http://jira.xwiki.org/browse/XWIKI-10375 ("Refactor > the > >> temporary resource concept inside the Resource module”) and I need to > >> define a URL format for the new “tmp” resource type. > >> > >> I’m proposing the following: > >> > >> > > > >> http://<server>/<context>/tmp/<module id>/<serialized owner document > >> reference>/<module-dependent resource path> > >> > > > > Serialized document reference uses backslash to escape special characters > > which breaks the URL in Tomcat for security reasons. > > > Yes but the same is true whether you have “A\.B.C” or "/A\.B/C”. > WDYM? The dot is escaped in the space name with a backslash only when the space name is serialized as a reference, which is not the case for the standard wiki page URL /xwiki/bin/view/Space.With.Dot/Page.With.Dot Having a slash or a backslash in the space or page name is less common than having a dot ("Version 1.2"). And the user might be willing to accept that having a backslash in the page (or attachment's) name can cause security issues with Tomcat, but I doubt he will accept to avoid dots. > That’s not a blocking issue anyway since we can easily transform them into > other characters when we serialized and do the opposite when we parse the > URL. > > > This is based on the existing TemporaryResourceReference at: > >> > >> > https://github.com/xwiki/xwiki-platform/blob/96caad053c14fc5546e9bc141bc284e6112dd48e/xwiki-platform-core/xwiki-platform-resource/xwiki-platform-resource-default/src/main/java/org/xwiki/resource/temporary/TemporaryResourceReference.java#L33-L33 > >> > >> For example: > >> > >> http:// > >> > <server>/<context>/tmp/officeviewer/A.B.WebHome/Q29tcGFueSBQcmVzZW50YXRpb24ucHB0/Company+Presentation-slide0.jpg > >> > >> Note that in this example from the officeviewer macro the > module-dependent > >> resource path consists in: > >> > > > > > >> - base64(name of office attachment + hashcode(parameters)) > >> > > > > See http://jira.xwiki.org/browse/XWIKI-11528 for the rationale behind > it. I > > was trying to avoid backslash (from the serialized attachment reference) > in > > the URL. > > > Yes. However the image name “Company Presentation-slide0” could also > contain slash or backlashes too. > It could but it's less common, especially because most Operating Systems are not very friendly with these characters when used in file or folder names. > > Note that I wasn’t sure why you you didn’t compute the base64 of both the > name of attachment + the parameters instead of having 2 directory levels > consisting in the base64 of the attachment name + the hashcode of the > parameters as different path segments. Need to check XWIKI-11528, maybe > it’s there. > > IMO we need to treat all path segments in the same way and convert slash > and backslash into some other characters. I’m not sure we need the base64 > solution. But anyway this is an implementation detail of the officeviewer > module and not really related to the discussion of the generic Temporary > URL format. > > Thanks > -Vincent > > > - generated image name from PPT > >> > >> In this case, the implementation would generate the following file: > >> > >> > >> > [TMPDIR]/officeviewer/A/B/WebHome/Q29tcGFueSBQcmVzZW50YXRpb24ucHB0/Company+Presentation-slide0.jpg > >> > >> WDYT? > >> > >> Thanks > >> -Vincent > > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

