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 "Bjorn Townsend (JIRA)" <ax...@ws.apache.org> on 2006/12/28 20:42:21 UTC
[jira] Commented: (AXIS-2599) HTTPSernder: Wrong Basic64 content in
Authorization
[ 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