in aliyun-sdk-opensearch/src/main/java/com/aliyun/opensearch/auth/OpenSearchAuthentication.java [184:217]
protected static String createToSignContents(String method, String content_md5, String content_type, String date,
TreeMap<String, String> opensearch_headers, String request_path,
TreeMap<String, String> query_params) {
StringBuilder string_to_sign = new StringBuilder();
string_to_sign.append(method.toUpperCase()).append("\n");
string_to_sign.append(content_md5).append("\n");
string_to_sign.append(content_type).append("\n");
string_to_sign.append(date).append("\n");
for (Entry<String, String> entry : opensearch_headers.entrySet()) {
String header_key = entry.getKey().toLowerCase();
String header_value = entry.getValue();
string_to_sign.append(header_key).append(":").append(header_value).append("\n");
}
String signable_resource = Utils.percentEncode(request_path).replaceAll("%2F", "/");
List<String> query_params_kvs = Lists.newLinkedList();
for (Entry<String, String> entry : query_params.entrySet()) {
String k = entry.getKey();
String v = entry.getValue();
String encodeKey = Utils.percentEncode(k);
String encodeValue = Utils.percentEncode(v);
StringBuilder s = new StringBuilder();
query_params_kvs.add(s.append(encodeKey).append("=").append(encodeValue).toString());
}
String query_params_string = Joiner.on('&').join(query_params_kvs);
String canonicalizedResource = signable_resource;
if (!query_params_string.isEmpty()) {
canonicalizedResource += "?" + query_params_string;
}
string_to_sign.append(canonicalizedResource);
return string_to_sign.toString();
}