You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "nadir amra (JIRA)" <ax...@ws.apache.org> on 2010/11/08 06:23:08 UTC

[jira] Closed: (AXISCPP-1059) HTTPTransport generates duplicate "Authentication: " headers

     [ https://issues.apache.org/jira/browse/AXISCPP-1059?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

nadir amra closed AXISCPP-1059.
-------------------------------

       Resolution: Fixed
    Fix Version/s: current (nightly)

I have fixed the setTransportProperty() so that it replaces an existing property with same key.   

I have not added an addTransportProperty() since I do not see the need for such a method.  

Closely related to this issue was the code emitter that checked to see if SOAPAction was already set before setting it.  This causes problems when the stub is used to call 2 different operations....the second SOAP request contained the SOAPAction value of the first operation because of the following:

if (NULL==m_pCall->getTransportProperty("SOAPAction",false))
			m_pCall->setTransportProperty(SOAPACTION_HEADER , "xxxxxx");


I simply removed the if-check and ensured that setTransportProperty() was always invoked.

> HTTPTransport generates duplicate "Authentication: " headers
> ------------------------------------------------------------
>
>                 Key: AXISCPP-1059
>                 URL: https://issues.apache.org/jira/browse/AXISCPP-1059
>             Project: Axis-C++
>          Issue Type: Bug
>          Components: Transport (axis3)
>    Affects Versions: current (nightly)
>         Environment: Any
>            Reporter: Michael Chen
>            Assignee: nadir amra
>             Fix For: current (nightly)
>
>
> Source file "axis/trunk/c/src/transport/axis3/HTTPTransport.cpp", line 360.
> When generateHTTPHeaders() calls setTransportProperty("Authorization", ...), the later does NOT replace existing "Authentication: " header but add another one.  My application uses the same stub to call the same service repeatedly.  This resulted in increasingly more and more duplicate "Authentication: " header being sent to the service.  After a while, the service refuses the request.
> The common practice is that "set" replaces duplicate key/value pairs, while "add" implies the acceptance of duplicate keys.  setTransportProperty(const char*, const char*) only remove duplicates of 3 know headers, "Connection", "Content-Length" and "SOAPAction".  This is a design flaw.  There should be two sibling member functions:
> setTransportProperty(const char*, const char*)
> addTransportProperty(const char*, const char*)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: c-dev-help@axis.apache.org