Генерация подписи s3 без доступа к aws cli - PullRequest
0 голосов
/ 20 ноября 2018

Действительно ударив об стену с этим, так что будьте велики, чтобы получить немного руководства.В основном у меня есть клиент, который использует sas 9.3 и не имеет разъема s3 или aws cli, но мне нужно подключиться к s3, поэтому единственный способ, которым я могу это сделать, - это использовать grroovy и библиотеки java, однако я не могу заставить это работать.Каждый раз, когда я пытаюсь сделать это, я получаю

подпись запроса, которую мы вычислили, не совпадает с подписью, которую вы предоставили.Проверьте ваш ключ и метод подписи

сообщение об ошибке.Мне было интересно, есть кто-нибудь опыт с этим или кто-то может помочь мне, потому что я не могу заставить его работать.Большое спасибо заранее.

Код:

proc groovy;
add sasjar="commons_codec" ;

submit "&s3secret." "&stringToSign.";
import javax.crypto.Mac
import javax.crypto.spec.SecretKeySpec
import org.apache.commons.codec.binary.Base64
def base64hmacsha256(key, message) {
    mac = Mac.getInstance("HmacSHA256")
    mac.init(new SecretKeySpec(key.getBytes(), "HmacSHA256"))
    sha1_bytes = mac.doFinal(message.getBytes())
    base64 = new Base64()
    return mac.doFinal(message.getBytes("UTF8"));
}
exports.base64hmacsha256 = base64hmacsha256(args[0], args[1])
endsubmit;
quit;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...