public static void main()

in legacy/java/UrlInfo.java [134:187]


    public static void main(String[] args) throws Exception {

        if (args.length < 3) {
            System.err.println("Usage: UrlInfo ACCESS_KEY_ID " +
                               "SECRET_ACCESS_KEY site");
            System.exit(-1);
        }

        // Read command line parameters

        String accessKey = args[0];
        String secretKey = args[1];
        String site = args[2];

        UrlInfo urlInfo = new UrlInfo(accessKey, secretKey, site);

        String canonicalQuery = "Action=" + "urlInfo" + "&ResponseGroup=" + URLEncoder.encode(RESPONSE_GROUP_NAME, "UTF-8") + "&Url=" + URLEncoder.encode(site, "UTF-8");
        String canonicalHeaders = "host:" + SERVICE_ENDPOINT + "\n" + "x-amz-date:" + urlInfo.amzDate + "\n";
        String signedHeaders = "host;x-amz-date";

        String payloadHash = urlInfo.sha256("");

        String canonicalRequest = "GET" + "\n" + SERVICE_URI + "\n" + canonicalQuery + "\n" + canonicalHeaders + "\n" + signedHeaders + "\n" + payloadHash;

        // ************* TASK 2: CREATE THE STRING TO SIGN*************
        // Match the algorithm to the hashing algorithm you use, either SHA-1 or
        // SHA-256 (recommended)
        String algorithm = "AWS4-HMAC-SHA256";
        String credentialScope = urlInfo.dateStamp + "/" + SERVICE_REGION + "/" + SERVICE_NAME + "/" + "aws4_request";
        String stringToSign = algorithm + '\n' +  urlInfo.amzDate + '\n' +  credentialScope + '\n' +  urlInfo.sha256(canonicalRequest);

        // ************* TASK 3: CALCULATE THE SIGNATURE *************
        // Create the signing key
        byte[] signingKey = urlInfo.getSignatureKey(secretKey, urlInfo.dateStamp, SERVICE_REGION, SERVICE_NAME);

        // Sign the string_to_sign using the signing_key
        String signature = bytesToHex(HmacSHA256(stringToSign, signingKey));

        String uri = AWS_BASE_URL + "?" + canonicalQuery;

        System.out.println("Making request to:\n");
        System.out.println(uri + "\n");

        // Make the Request

        String authorization = algorithm + " " + "Credential=" + accessKey + "/" + credentialScope + ", " +  "SignedHeaders=" + signedHeaders + ", " + "Signature=" + signature;

        String xmlResponse = makeRequest(uri, authorization, urlInfo.amzDate);

        // Print out the XML Response

        System.out.println("Response:\n");
        System.out.println(xmlResponse);
    }