]
Work on GTNPORTAL-2169 started by Hai Nguyen.
---------------------------------------------
Header values case sensitive
----------------------------
Key: GTNPORTAL-2169
URL:
https://issues.jboss.org/browse/GTNPORTAL-2169
Project: GateIn Portal
Issue Type: Feature Request
Components: Common integration
Affects Versions: 3.1.0-GA, 3.2.0-M01
Reporter: Ronny Pscheidl
Assignee: Hai Nguyen
Fix For: 3.x
case sensitiv problem with getHeaders in portal-container.
For example, if you call request.getHeader("Wicket-Ajax") without
portal-container you get the value of this parameter. if you call this in portal-container
you get null. in both cases the header value is set. the difference is, that without
portal-container you get these parameters by javax.xml.soap.MimeHeaders. it implements
getHeader like this with equalsIgnoreCase:
public String[] getHeader(String name) {
Vector values = new Vector();
for(int i = 0; i < headers.size(); i++) {
MimeHeader hdr = (MimeHeader) headers.elementAt(i);
if (hdr.getName().equalsIgnoreCase(name)
&& hdr.getValue() != null)
values.addElement(hdr.getValue());
}
if (values.size() == 0)
return null;
String r[] = new String[values.size()];
values.copyInto(r);
return r;
}
With portal-container you get the header parameter by SimpleMultiValuedProperty method
getValue which doesn't ignore case sensetive. so we have to overwrite the method
getHeader and getHeaders in our HttpServletRequestWrapper. is there a way to change this
in gatein to use also MimeHeaders in PortletRequestImpl instead of
SimpleMultiValuedProperty.