in src/main/java/com/aliyun/mns/client/impl/AbstractAction.java [204:244]
protected void addSignatureHeader(RequestMessage request)
throws ClientException {
if (credentials == null) {
return;
}
AlibabaCloudCredentialsProvider provider = credentials.getCredentialsProvider();
if ((credentials.getAccessKeyId() == null || credentials.getAccessKeySecret() == null) && provider == null) {
return;
}
// ak/sk 模式 和 credentials 模式
boolean akSkMode = (credentials.getAccessKeyId() != null && credentials.getAccessKeySecret() != null);
boolean alibabaCredentialsMode = (provider != null);
// init ak/sk/token
String accessKeyId = null;
String accessKeySecret = null;
String securityToken = null;
if (akSkMode) {
accessKeyId = credentials.getAccessKeyId();
accessKeySecret = credentials.getAccessKeySecret();
securityToken = credentials.getSecurityToken();
} else if (alibabaCredentialsMode) {
AlibabaCloudCredentials alibabaCloudCredentials = getAlibabaCloudCredentials(provider);
if (alibabaCloudCredentials != null) {
accessKeyId = alibabaCloudCredentials.getAccessKeyId();
accessKeySecret = alibabaCloudCredentials.getAccessKeySecret();
securityToken = AlibabaCloudCredentialsUtil.getSecurityToken(alibabaCloudCredentials);
}
}
// Add signature
request.addHeader(MNSConstants.AUTHORIZATION,
"MNS " + accessKeyId + ":" + getSignature(request, accessKeySecret)
);
// add security_token if security token is not empty.
if (StringUtils.isNotBlank(securityToken)) {
request.addHeader(MNSConstants.SECURITY_TOKEN, securityToken);
}
}