[ 
https://issues.apache.org/jira/browse/STRATOS-676?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14047344#comment-14047344
 ] 

Imesh Gunaratne edited comment on STRATOS-676 at 6/30/14 3:44 AM:
------------------------------------------------------------------

Fixed in master branch with commit revision 
67a22ab51ef9288629979470648b3b2d7b831bba:

- Added a configuration option to switch Location header rewrite functionality 
on and off. This option is now available in loadbalancer.conf, 
"rewrite-location-header". 

- If applications deployed in the PaaS do not use absolute URLs in Location 
headers with member IP addresses, this feature can be turned off.
 
- If the above configuration option is turned on, load balancer will re-write 
Location headers if the incoming Location header URL host is an ip address 
(public/private) of a known member. The resulting outgoing Location header will 
have the cluster hostname of the corresponding member and the transport proxy 
port. 
To do this we have introduced a new hash map in load balancer context: 
Map<MemberIp, ClusterHostname>. This map will have both private and public ip 
addresses of all members. 

- In addition we have done a modification in messaging component to trigger 
Service Removed, Cluster Removed and Member Terminated event listeners before 
removing the relevant objects from the local topology data structure. 


was (Author: imesh):
Fixed in master branch with commit revision 
67a22ab51ef9288629979470648b3b2d7b831bba:

- Added a configuration option to switch Location header rewrite functionality 
on and off. This option is now available in loadbalancer.conf, 
"rewrite-location-header". 

- If applications deployed in the PaaS do not use absolute URLs in Location 
headers with member IP addresses, this feature can be turned off. However AFAIK 
carbon servers do this in file upload feature. Therefore we will need to keep 
this turned on for Private PaaS. 

- If the above configuration option is turned on, load balancer will re-write 
Location headers if the incoming Location header URL host is an ip address 
(public/private) of a known member. The resulting outgoing Location header will 
have the cluster hostname of the corresponding member and the transport proxy 
port. 
To do this we have introduced a new hash map in load balancer context: 
Map<MemberIp, ClusterHostname>. This map will have both private and public ip 
addresses of all members. 

- In addition we have done a modification in messaging component to trigger 
Service Removed, Cluster Removed and Member Terminated event listeners before 
removing the relevant objects from the local topology data structure. 

> LB shouldn't be re-writing http location header if Location is a hostname
> -------------------------------------------------------------------------
>
>                 Key: STRATOS-676
>                 URL: https://issues.apache.org/jira/browse/STRATOS-676
>             Project: Stratos
>          Issue Type: Bug
>          Components: Load Balancer
>    Affects Versions: 4.0.0
>            Reporter: Nirmal Fernando
>            Assignee: Imesh Gunaratne
>             Fix For: 4.0.1, 4.1.0
>
>
> After investigating the issue I found out that Stratos LB re-writes Http 
> Location Header even if the Location header is a host name. This violates the 
> spec and break most of the real world scenarios. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to