Done, hope I did not break anything in the process. On Thu, May 3, 2012 at 2:34 PM, Marius Dumitru Florea <[email protected]> wrote: > On Thu, May 3, 2012 at 2:24 PM, Thomas Mortagne > <[email protected]> wrote: >> On Tue, Apr 10, 2012 at 10:16 AM, Thomas Mortagne >> <[email protected]> wrote: >>> On Mon, Apr 9, 2012 at 9:26 AM, Marius Dumitru Florea >>> <[email protected]> wrote: >>>> On Sun, Apr 8, 2012 at 1:15 PM, Thomas Mortagne >>>> <[email protected]> wrote: >>>>> On Fri, Apr 6, 2012 at 11:28 AM, Marius Dumitru Florea >>>>> <[email protected]> wrote: >>>>>> On Fri, Apr 6, 2012 at 11:57 AM, Thomas Mortagne >>>>>> <[email protected]> wrote: >>>>>>> I was starting to look at what to modify and I found that we are >>>>>>> really not consistent right now: most of the Java code in oldcore like >>>>>>> XWikiAction are using absolute URL but all VM I could see (and I guess >>>>>>> it's the same for the wiki pages) send relative URLs. >>>>>>> >>>>>>> So using absolute URL for send redirect is very far from being a rule >>>>>>> right now. It also mean that making it configurable is going to be a >>>>>>> pain since none of the .vm and wiki page are going though some common >>>>>>> redirect oriented URL generator like most Java code do. >>>>>>> >>>>>>> Here is a proposal: >>>>>>> * introduce a configuration but use it only in >>>>>>> XWikiDocument#getURL(String action, String params, boolean redirect, >>>>>>> XWikiContext context) (that's the method where pretty much all Java >>>>>>> code go trough when asking for a redirect URL) >>>>>> >>>>>> There is also api.XWiki.getRequestURL() used with xredirect query >>>>>> string parameter, at least for the login and logout URLs. We should >>>>>> either add an API to get the relative form of the current request URL >>>>>> or change api.XWiki.getRequestURL() to take into account the >>>>>> configuration you're proposing. I prefer the later. >>>>> >>>>> I don't agree here, api.XWiki.getRequestURL() is supposed to return >>>>> the request URL and returning a relative URL would not make much sense >>>>> and would be a major API breackage IMO. If you return a relative URL >>>>> it's not really the request URL anymore. >>>>> >>>>> Now I'm not sure it's that important to force this particular use case >>>>> in a relative URL since what you want is to go back in the exact same >>>>> situation after having done something (like login) and providing the >>>>> request URL as it is probably make more sense that modify it in a >>>>> relative URL to be resolved back by the application server. >>>>> >>>>> WDYT ? >>>> >>>> We don't have the "request URL as it is". We compute it using the same >>>> URL factory that creates wrong document external URLs when XWiki is >>>> behind a proxy. So if XWikiDocument#getURL() returns the wrong URL >>>> then XWiki#getRequestURL will do the same. >>>> >>>> I'm fine with keeping the current behaviour of XWiki#getRequestURL() >>>> for backward compatibility, but we need an API to get the relative >>>> request URL as well. >>> >>> Indeed I fault this was simply provided by the requuest since there >>> was getRequestURL in HttpServletRequest but it's reconstructed too >>> according to the javadoc. In that case yes we should probably >>> introduce a new API for it. But we need to be carefull with that in >>> the case where xredirect is using in another wiki but I don't think we >>> really have this usse case. >>> >>> What about adding a api.XWiki#getRequestURL(boolean redirect) to >>> follow XWikiDocument#getURL ? >>> >>> Other idea beiing to a simple api.XWiki#getRelativeRequestURL(). >> > >> Adding api.XWiki#getRelativeRequestURL() and I should be ready to >> merge my branch. > > Great! Thanks, > Marius > >> >>> >>>> >>>> Thanks, >>>> Marius >>>> >>>>> >>>>>> >>>>>>> * introduce a api.Document#getURL(String action, String queryString, >>>>>>> boolean redirect) method to follow XWikiDocument (from scratch I think >>>>>>> I would prefer getRedirectURL but it's simpler to follow already >>>>>>> existing API for now) >>>>>>> * we can refactor later the .vm and wiki page to support this new >>>>>>> configuration. What's important right now is to allow someone to come >>>>>>> back to old behavior for whatever reason (which sounds a lot less >>>>>>> necessary to me now that I know that we actually use a lot of relative >>>>>>> URL in sendRedirect) but better be safe since it does not cost a lot >>>>>>> here and I plan to introduce this in xwiki.cfg only >>>>>>> >>>>>>> WDYT ? >>>>>> >>>>>> +1, although I'm also for generating relative URLs whenever it is >>>>>> possible, without any configuration parameter. >>>>>> >>>>>> Thanks, >>>>>> Marius >>>>>> >>>>>>> >>>>>>> On Wed, Mar 21, 2012 at 1:10 AM, Thomas Mortagne >>>>>>> <[email protected]> wrote: >>>>>>>> On Tue, Mar 20, 2012 at 11:36 PM, Sergiu Dumitriu <[email protected]> >>>>>>>> wrote: >>>>>>>>> On 03/20/2012 03:39 AM, Thomas Mortagne wrote: >>>>>>>>>> >>>>>>>>>> Hi devs, >>>>>>>>>> >>>>>>>>>> In HTTP specifications a redirect is always absolute URL which is >>>>>>>>>> probably why we use absolute URL with sendRedirect. >>>>>>>>>> >>>>>>>>>> However sendRedirect does not produce direct HTTP response but allows >>>>>>>>>> relative URL and delegate to the application server the job of >>>>>>>>>> producing proper absolute URL. >>>>>>>>>> >>>>>>>>>> IMO XWiki should always use relative URL everywhere it can so I >>>>>>>>>> propose to change our practice to use relative URL instead of >>>>>>>>>> absolute >>>>>>>>>> URL with HttpSevletResponse#sendRedirect when possible. >>>>>>>>>> >>>>>>>>>> The only reasons I see to use external URLs are: >>>>>>>>>> * interwiki URL in a domain based multiwiki >>>>>>>>>> * html/pdf export for links pointing on not exported pages or non >>>>>>>>>> view >>>>>>>>>> actions >>>>>>>>>> >>>>>>>>>> WDYT ? >>>>>>>>> >>>>>>>>> >>>>>>>>> I don't think this will actually solve the problem. >>>>>>>> >>>>>>>> What problem ? If you are talking about >>>>>>>> http://jira.xwiki.org/browse/XWIKI-7632 it did fixed the issue in this >>>>>>>> specific use case as I said on the issue itself. >>>>>>>> >>>>>>>>>As long as XWiki doesn't >>>>>>>>> know the correct URL to use, I doubt that the container will do any >>>>>>>>> better. >>>>>>>>> I just tested this on Apache HTTPD + mod_proxy_http going to Jetty, >>>>>>>>> and it >>>>>>>>> didn't solve the problem. >>>>>>>> >>>>>>>> Probably mean you did not properly configured your reverse proxy but >>>>>>>> in my use case it was done right. >>>>>>>> >>>>>>>>> >>>>>>>>> For the PDF export, all URLs must be external. A relative URL in a PDF >>>>>>>>> doesn't have a base URL to work with, since the PDF is a standalone >>>>>>>>> document. That's why we use a special URLFactory when exporting PDFs. >>>>>>>> >>>>>>>> I know we are using a special URLFactory for pdf export. If a document >>>>>>>> pointing to itself or to another document exported in the same pdf is >>>>>>>> an external URL with sheme/host/port then there is something pretty >>>>>>>> wrong in the pdf export. Anyway that's not really the subject of the >>>>>>>> proposal. >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> Here is my +1. We very often fix bugs in the way to produce external >>>>>>>>>> URL and it's still not OK (see >>>>>>>>>> http://jira.xwiki.org/browse/XWIKI-7632) so lets reduce the scope for >>>>>>>>>> this need as much as possible. >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Sergiu Dumitriu >>>>>>>>> http://purl.org/net/sergiu/ >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> devs mailing list >>>>>>>>> [email protected] >>>>>>>>> http://lists.xwiki.org/mailman/listinfo/devs >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Thomas Mortagne >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Thomas Mortagne >>>>>>> _______________________________________________ >>>>>>> devs mailing list >>>>>>> [email protected] >>>>>>> http://lists.xwiki.org/mailman/listinfo/devs >>>>>> _______________________________________________ >>>>>> devs mailing list >>>>>> [email protected] >>>>>> http://lists.xwiki.org/mailman/listinfo/devs >>>>> >>>>> >>>>> >>>>> -- >>>>> Thomas Mortagne >>>>> _______________________________________________ >>>>> devs mailing list >>>>> [email protected] >>>>> http://lists.xwiki.org/mailman/listinfo/devs >>>> _______________________________________________ >>>> devs mailing list >>>> [email protected] >>>> http://lists.xwiki.org/mailman/listinfo/devs >>> >>> >>> >>> -- >>> Thomas Mortagne >> >> >> >> -- >> Thomas Mortagne >> _______________________________________________ >> devs mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/devs > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs
-- Thomas Mortagne _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

