public static function getSignature()

in util/php/src/Client.php [77:102]


    public static function getSignature($request, $accessKeyId, $accessKeySecret)
    {
        $pathname = $request->pathname ? $request->pathname : '';
        $headers  = $request->headers;
        $query    = $request->query ? $request->query : [];

        $get_from_headers = function ($key, $default = '') use ($headers) {
            return isset($headers[$key]) ? $headers[$key] : $default;
        };

        $result = $request->method . "\n" .
            $get_from_headers('accept') . "\n" .
            $get_from_headers('content-md5') . "\n" .
            $get_from_headers('content-type') . "\n" .
            $get_from_headers('date') . "\n";

        $canonicalizedHeaders  = RoaUtils::getCanonicalizedHeaders($headers, 'x-opensearch-');
        $canonicalizedResource = RoaUtils::getCanonicalizedResource($pathname, $query);

        $signString = $result . $canonicalizedHeaders . $canonicalizedResource;

        return 'OPENSEARCH ' .
            $accessKeyId . ':' . base64_encode(
                hash_hmac('sha1', $signString, $accessKeySecret, true)
            );
    }