On Wed, Jun 18, 2014 at 8:16 AM, Isuru Haththotuwa <isu...@apache.org> wrote:
> Hi Melan, > > A good find. Agreed that Location header should be properly supported. > Sorry if this is a dumb question, but could you please explain a bit more > what is the issue that occurs in this specific scenario you tested? > it's not a dumb question at all :) let's take running joomla for first time in a PHP cartridge as example Client request to LB *GET / HTTP/1.1Host: joomla.example.org <http://joomla.example.org>* LB request to backend server *GET / HTTP/1.1Host: 10.100.1.96* Backend server response: *HTTP/1.1 302 FoundLocation: installation/index.php* LB should rewrite as below but it fails : *HTTP/1.1 302 FoundLocation: http://joomla.example.org/installation/index.php <http://joomla.example.org/installation/index.php>* if backed server respond like as below, then it's working *HTTP/1.1 302 FoundLocation: http://**10.100.1.96/ <http://10.100.1.96/>installation/index.php* Thanks, Melan > > On Wed, Jun 18, 2014 at 1:31 AM, Melan Nimesh <me...@apache.org> wrote: > >> Hi Devs, >> >> I noticed the $subject while subscribing to a PHP cartridge with a joomla >> repository. LB fails to rewrite location header with relative URLs with >> following error[1] and redirection not happens correctly. I think it's a >> valid requirement to support to location header with relative URLs, since >> it is valid according to the current revision of HTTP/1.1 and most browsers >> support it (even though rfc2616[2] says location header's value is supposed >> to be an absolute URI ), WDYT? >> >> >> Thanks, >> Melan >> >> [1] >> >> TID: [0] [LB] [2014-06-18 00:35:15,997] INFO >> {org.apache.synapse.core.axis2.TimeoutHandler} - This engine will expire >> all callbacks after : 86400 seconds, irrespective of the timeout action, >> after the specified or optional timeout >> TID: [0] [LB] [2014-06-18 00:35:23,474] ERROR >> {org.apache.stratos.load.balancer.mediators.LocationReWriter} - Could >> re-write location header >> java.net.MalformedURLException: no protocol: installation/index.php >> at java.net.URL.<init>(URL.java:585) >> at java.net.URL.<init>(URL.java:482) >> at java.net.URL.<init>(URL.java:431) >> at >> org.apache.stratos.load.balancer.mediators.LocationReWriter.mediate(LocationReWriter.java:49) >> at >> org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:78) >> at >> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77) >> at >> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47) >> at >> org.apache.synapse.mediators.filters.OutMediator.mediate(OutMediator.java:61) >> at >> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77) >> at >> org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47) >> at >> org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) >> at >> org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:228) >> at >> org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:486) >> at >> org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:170) >> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) >> at >> org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:225) >> at >> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >> at java.lang.Thread.run(Thread.java:744) >> >> [2] http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30 >> >> >> -- >> Melan Nimesh Jayasinghage >> > > -- Melan Nimesh Jayasinghage