> On 19 Apr 2016, at 10:25, Vincent Massol <[email protected]> wrote: > > >> On 19 Apr 2016, at 10:07, Thomas Mortagne <[email protected]> wrote: >> >> Like Edy, I'm not a big fan of the forced document based entry point >> since it might not makes any sense for some use cases. > > As I mentioned in my previous mail we don’t need to consider it a reference > to a document. We could just make it a reference to anything. The module > using the tmp service would know what type of reference it is and it could > cast it to a document reference if it knows it’s that.
Actually this wouldn’t work since it would have one effect: we wouldn’t be able to check rights in the Tmp Handler which is a problem… We could decide to use a serialized Resource Reference and develop a Rights Checker accepting any Resource Reference (we would only implement check for Entity Resource Reference to start with). This means also inventing a serialization format for Resource References (something with a prefix representing the type as with Link Resource References). Since this is a bit complex we could start with an Entity Reference for now and implement this later on. Thanks -Vincent > BTW this means that my URL entity reference serializer/resolver are no useful > for this ;) (they’d still be useful for the “reference” url scheme though). > We could simply take a String an replace the “/“ and “\” with some other > symbols and do the same when parsing the URL.. > > So the generic format would be: > > http://<server>/<context>/tmp/<module id>/<serialized reference/id > representing the resource>/<module-dependent resource path> > > The <serialized reference/id representing the resource> wouldn’t be able to > be empty though since <module-dependent resource path> is non-fixed length > (e.g. “a/b/c”). > > WDYT? > > Thanks > -Vincent > >> Now one job of the tmp resource is also to check access right so we >> need to pass it an entity reference on which to test the right when a >> right check is required. The alternative being to end up with the >> reference both in the path (to avoir collisions) and as some URL >> parameter which is not nice I guess what you propose it ok as long as >> empty reference is supported (i.e. don't test the right and just go >> return the file associated to the path) as in >> http://mydomain/xwiki/tmp/mymodule//I/don't/care/about/right.png >> >> Making the tmp resource generic enough to be just an entry point for >> calling some module which then do whatever it wants would just be a >> duplicate of resource handler framework but maybe we just don't really >> need this anymore central temp resource entry point since now that we >> have a generic resource handler framework ? >> >> On Fri, Apr 15, 2016 at 9:26 AM, Vincent Massol <[email protected]> wrote: >>> @Thomas: are you ok with the proposed format: >>> >>> http://<server>/<context>/tmp/<module id>/<serialized owner document >>> reference>/<module-dependent resource path> >>> >>> ? >>> >>> Thanks >>> -Vincent >>> >>>> On 14 Apr 2016, at 17:55, Thomas Mortagne <[email protected]> >>>> wrote: >>>> >>>> On Thu, Apr 14, 2016 at 4:52 PM, 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. >>>> >>>> Badly configured Tomcat does not like slash but are you sure about >>>> backslash ? >>>> >>>>> >>>>> >>>>>> >>>>>> 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. >>>>> >>>>> >>>>>> - 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

