All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ksyun.ks3.signer.DefaultSigner Maven / Gradle / Ivy

package com.ksyun.ks3.signer;

import com.ksyun.ks3.dto.*;
import com.ksyun.ks3.service.Ks3ClientConfig;
import org.apache.http.HttpHeaders;

import com.ksyun.ks3.exception.Ks3ClientException;
import com.ksyun.ks3.http.Request;
import com.ksyun.ks3.utils.AuthUtils;


/**
 * @author lijunwei[[email protected]]  
 * 
 * @date 2014年11月6日 上午10:45:56
 * 
 * @description 默认的签名计算器
 **/
public class DefaultSigner implements Signer {
	public void sign(Authorization auth, Request request) {
		try {
			if(!request.isPresign()) {
				if (auth.getSecurityToken() != null) {
					request.addHeader(com.ksyun.ks3.http.HttpHeaders.XKssSecurityTokenHeader.toString(), auth.getSecurityToken());
				}
				request.addHeader(HttpHeaders.AUTHORIZATION.toString(),AuthUtils.calcAuthorization(auth, request));
			} else{
				if (auth.getSecurityToken() != null) {
					request.getQueryParams().put("security-token", auth.getSecurityToken());
				}
				request.getQueryParams().put("AccessKeyId",auth.getAccessKeyId());
				request.getQueryParams().put("Signature",AuthUtils.calcSignature(auth.getAccessKeySecret(), request));
				request.getQueryParams().put("Expires", String.valueOf(request.getExpires().getTime()/1000));
			}
		} catch (Exception e) {
			throw new Ks3ClientException(
					"计算用户签名时出错("
							+ e + ")", e);
		}
	}
	public void signV4(Authorization auth, Request request,Ks3ClientConfig ks3config) {
		try {
			Ks3V4Signer signer = new Ks3V4Signer();
			if(!request.isPresign()) {//expires == null
				if (auth.getSecurityToken() != null) {
					request.addHeader(com.ksyun.ks3.http.HttpHeaders.XKssSecurityTokenHeader.toString(), auth.getSecurityToken());
				}
				signer.sign(auth, request, ks3config);
			}else{
				if (auth.getSecurityToken() != null) {
					request.getQueryParams().put("security-token", auth.getSecurityToken());
				}
			    String signature = signer.calcSignature(auth, request,ks3config);
				request.addQueryParam("X-Kss-Signature",signature);
			}
		} catch (Exception e) {
			throw new Ks3ClientException(
					"计算用户签名时出错("
							+ e + ")", e);
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy