Neil, we tried your patch, but experienced the same intermittent results and now confirm that it is always when the signature is generated with a "+". Ran across this sample code at Amazon and reversed it for the decode and it seems to have solved our problem.
Neil, we tried your patch, but experienced the same intermittent results and now confirm that it is always when the signature is generated with a "+". Ran across this sample code at Amazon and reversed it for the decode and it seems to have solved our problem.
http:// docs.amazonwebs ervices. com/AWSECommerc eService/ latest/ DG/index. html?Query_ QueryAuth. html (Java example)
Also at: pastebin. com/mb5e64d1
http://
*** WalrusAuthentic ationHandler. java 2009-11-05 05:25:20.000000000 -0500 ationHandler. java.ulicny 2009-11-17 15:10:30.000000000 -0500
//query string authentication
String accesskeyid = parameters. remove( SecurityParamet er.AWSAccessKey Id.toString( ));
try { decode( parameters. remove( SecurityParamet er.Signature. toString( )), "UTF-8");
if( signature == null) {
throw new AuthenticationE xception( "User authentication failed. Null signature.");
}
//query string authentication
String accesskeyid = parameters. remove( SecurityParamet er.AWSAccessKey Id.toString( ));
try { decode( parameters. remove( SecurityParamet er.Signature. toString( )), "UTF-8")
if( signature == null) {
throw new AuthenticationE xception( "User authentication failed. Null signature.");
}
--- WalrusAuthentic
***************
*** 252,258 ****
! String signature = URLDecoder.
--- 252,261 ----
! String signature = URLDecoder.
! .replace("%20", "+")
! .replace("%2A", "*")
! .replace("~", "%7E");