protected void addSignatureHeader()

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);
        }
    }