开发者社区> 问答> 正文

Oss客户端上传回调 不能通过验证

我使用oss客户端上传一个图片,上传成功后需要回调我的接口。
情况:上传成功后,可以回调到我指定的接口,但是使用官方的demo代码,验证回调请求是否为oss回调的时候,获取Authorization为null,但是验证不成功。
boolean ret = false;
logger.info( "VerifyOSSCallbackRequest============") ;
logger.info( "Authorization:"+request.getHeader( "Authorization")) ;
String autorizationInput = new String(request.getHeader( "Authorization")) ;
logger.info( "VerifyOSSCallbackRequest============22222222222:" + autorizationInput) ;   // 输出为null
String pubKeyInput = request.getHeader( "x-oss-pub-key-url") ;
logger.info( "VerifyOSSCallbackRequest============33333333333333") ;
byte[] authorization = BinaryUtil. fromBase64String(autorizationInput) ;
byte[] pubKey = BinaryUtil. fromBase64String(pubKeyInput) ;
logger.info( "VerifyOSSCallbackRequest============444444444444444") ;
String pubKeyAddr = new String(pubKey) ;
logger.info( "VerifyOSSCallbackRequest============555555555:" + pubKeyAddr) ;
if (!pubKeyAddr.startsWith( "http://gosspublic.alicdn.com/") && !pubKeyAddr.startsWith( "https://gosspublic.alicdn.com/")) {
    System. out.println( "pub key addr must be oss addrss") ;
     logger.info( "VerifyOSSCallbackRequest============pub key addr must be oss addrss") ;
    return false;
}
logger.info( "VerifyOSSCallbackRequest============66666666666") ;
String retString = executeGet(pubKeyAddr) ;
retString = retString.replace( "-----BEGIN PUBLIC KEY-----" , "") ;
retString = retString.replace( "-----END PUBLIC KEY-----" , "") ;
String queryString = request.getQueryString() ;
String uri = request.getRequestURI() ;
String decodeUri = java.net.URLDecoder. decode(uri , "UTF-8") ;
String authStr = decodeUri ;
logger.info( "VerifyOSSCallbackRequest============777777777777") ;
if (queryString != null && !queryString.equals( "")) {
    authStr += "?" + queryString ;
}
authStr += " \n " + ossCallbackBody ;
ret = doCheck(authStr , authorization , retString) ;
logger.info( "VerifyOSSCallbackRequest============888888888888") ;
return ret ;

展开
收起
毛宇鹏 2016-03-22 11:19:37 7871 0
2 条回答
写回答
取消 提交回答
  • 你还能直接打印回调么
    php的要用error_log才能记录那些回调。
    2016-03-29 19:56:52
    赞同 展开评论 打赏
  • 回 楼主毛宇鹏的帖子
    我通过Java开发 应用服务器返回签名和上传回调  出现了 Policy expired
    2016-03-23 18:55:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载