You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Ricky Frost (JIRA)" <ax...@ws.apache.org> on 2005/02/16 01:59:44 UTC

[jira] Created: (AXIS-1820) Axis doesn't conform to HTTP/1.1 spec 5.1.2 (Request-URI)

Axis doesn't conform to HTTP/1.1 spec 5.1.2 (Request-URI)
---------------------------------------------------------

         Key: AXIS-1820
         URL: http://issues.apache.org/jira/browse/AXIS-1820
     Project: Axis
        Type: Bug
  Components: Basic Architecture  
    Versions: 1.2RC2    
 Environment: n/a
    Reporter: Ricky Frost


When AxisClient makes a request through a forward-proxy, it fails with HTTP 500 (BAD_URL).

According to the HTTP/1.1 spec (link below) the Request-URI is REQUIRED to be the absoluteURI form when the request is being made through a proxy. Axis doesn't do that.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5

I found that the org.apache.axis.transport.http.HTTPSender.invoke method does have a variable called "useFullURL" which is initialized to false. But nothing in the code apparently sets it to true before calling the private writeToSocket method in the same class.

I made a local change to the source as follows:

I added this line just before calling writeToSocket in invoke...

useFullURL = setFullURL( useFullURL );


Then I added the new method at the end of the class...

    /**
     * Check for the existence of either http or https proxy settings
     * and if found, trigger the use of full URL's.
     * Allow the override of that check with a specific control property.
     */
    private BooleanHolder setFullURL( BooleanHolder useFullURL ) {

        String axisFullURL =
            System.getProperty("org.apache.axis.transport.http.useFullURL", "");

        if( axisFullURL.length() > 0 ) {
            if( "true".equalsIgnoreCase(axisFullURL) )
                useFullURL.value = true;

        } else {
            if( System.getProperty("http.proxyHost", "").length() > 0 ||
                    System.getProperty("https.proxyHost", "").length() > 0 )
                useFullURL.value = true;
        }
        return useFullURL;
    }


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira