axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bjorn Townsend (JIRA)" <axis-...@ws.apache.org>
Subject [jira] Commented: (AXIS-2599) HTTPSernder: Wrong Basic64 content in Authorization
Date Thu, 28 Dec 2006 19:42:21 GMT
    [ http://issues.apache.org/jira/browse/AXIS-2599?page=comments#action_12461245 ] 
            
Bjorn Townsend commented on AXIS-2599:
--------------------------------------

Thomas,

Have you tried using CommonsHttpSender instead of HTTPSender?

> HTTPSernder: Wrong Basic64 content in Authorization
> ---------------------------------------------------
>
>                 Key: AXIS-2599
>                 URL: http://issues.apache.org/jira/browse/AXIS-2599
>             Project: Apache Axis
>          Issue Type: Bug
>          Components: Basic Architecture
>    Affects Versions: 1.4
>         Environment: z/OS (MVS)
> JDK 1.4.2
> Axis 1.4
>            Reporter: Thomas Klemmensen
>
> When we add credentials in the URL we send to AXIS we get some problems with the encoding.
> The URL looks something like this:
> http://USERID:PASS@1.2.3.4/someprojekt/services/TheService
> When class HTTPSender retrieve the userid (USERID) then it does the following:
> if (userID != null) {
> 	StringBuffer tmpBuf = new StringBuffer();
> 	tmpBuf.append(userID).append(":").append((passwd == null) ? "" : passwd);
> 	otherHeaders.append(HTTPConstants.HEADER_AUTHORIZATION).append(": Basic ").append(Base64.encode(tmpBuf.toString().getBytes())).append("\r\n");
> }
> But when we execute we recieve the following error from our service-provider:
> [Thu Dec 00 00:00:00 2006] [error] [client 4.3.2.1] user àëòäÆëéözêüôôëêüôôû
not found: /someprojekt/services/TheService
> It seems as if we don't use the same encoding.
> Looking in to the method String.getBytes() it seems the method uses the value from java.encoding
which should be:
> EBCDIC: Denmark  (cp277)
> As we look around the class HTTPSender we can see that almost everytime someone gets
a byte-array from a String or makes a String from a byte-array they are using the constant:
> HTTPConstants.HEADER_DEFAULT_CHAR_ENCODING (public static final String HEADER_DEFAULT_CHAR_ENCODING
= "iso-8859-1";)
> We have tried to put the value inside the existing code so it looks like this:
> if (userID != null) {
> 	StringBuffer tmpBuf = new StringBuffer();
> 	tmpBuf.append(userID).append(":").append((passwd == null) ? "" : passwd);
> 	otherHeaders.append(HTTPConstants.HEADER_AUTHORIZATION)
> 				.append(": Basic ")
> 				.append(Base64.encode(tmpBuf.toString().getBytes(HTTPConstants.HEADER_DEFAULT_CHAR_ENCODING)))
> 				.append("\r\n");
> }
> This seems to work. But we actually don't know if it's a BUG in the first place.
> But we hope it is and that is solved in later versions? Otherwise we would very much
appreciate if someone could help with another workaround to our problem.
> In advance, Thanx.
> Thomas

-- 
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
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

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


Mime
View raw message