Действительно ударив об стену с этим, так что будьте велики, чтобы получить немного руководства.В основном у меня есть клиент, который использует 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;