StorageCredentials creds = new StorageCredentialsSharedAccessSignature(sasToken); cloudBlobClient = new CloudBlobClient(new URI(storageConnectionString), creds); } else {
if (StringUtils.isNoneBlank(sasToken)) { connectionString = String.format(FORMAT_QUEUE_BASE_URI, storageAccountName); StorageCredentials storageCredentials = new StorageCredentialsSharedAccessSignature(sasToken); cloudQueueClient = new CloudQueueClient(new URI(connectionString), storageCredentials); } else {
/** * Connect to Azure storage using shared access signature credentials. */ private void connectUsingSASCredentials(final String accountName, final String containerName, final String sas) throws InvalidKeyException, StorageException, IOException, URISyntaxException { StorageCredentials credentials = new StorageCredentialsSharedAccessSignature( sas); connectingUsingSAS = true; connectUsingCredentials(accountName, credentials, containerName); }
@Override public CloudStorageAccount getCloudStorageAccount() throws InvalidKeyException, URISyntaxException { StorageCredentials credentials = new StorageCredentialsSharedAccessSignature(sasToken); return new CloudStorageAccount(credentials, true, null, accountName); }
@Override public CloudStorageAccount getCloudStorageAccount() throws InvalidKeyException, URISyntaxException { StorageCredentials credentials = new StorageCredentialsSharedAccessSignature(sasToken); return new CloudStorageAccount(credentials, true, null, accountName); }
return new StorageCredentialsSharedAccessSignature(sasSignature);
@Test public void testStorageCredentialsSAS() throws URISyntaxException, StorageException { String token = "?sig=1&sp=abcde&api-version=" + Constants.HeaderConstants.TARGET_STORAGE_VERSION; StorageCredentialsSharedAccessSignature cred = new StorageCredentialsSharedAccessSignature(token); assertNull(cred.getAccountName()); URI testUri = new URI("http://test/abc" + token); TestHelper.assertURIsEqual(testUri, cred.transformUri(testUri), true); testUri = new URI("http://test/abc?query=a&query2=b"); URI expectedUri = new URI("http://test/abc?sig=1&query=a&sp=abcde&query2=b&api-version=" + Constants.HeaderConstants.TARGET_STORAGE_VERSION); TestHelper.assertURIsEqual(expectedUri, cred.transformUri(testUri), true); }
@Test @Category({ DevFabricTests.class, DevStoreTests.class }) public void testSASClientParse() throws StorageException, InvalidKeyException, URISyntaxException { // Add a policy, check setting and getting. SharedAccessQueuePolicy policy1 = new SharedAccessQueuePolicy(); Calendar now = GregorianCalendar.getInstance(); now.add(Calendar.MINUTE, -15); policy1.setSharedAccessStartTime(now.getTime()); now.add(Calendar.MINUTE, 30); policy1.setSharedAccessExpiryTime(now.getTime()); policy1.setPermissions(EnumSet.of(SharedAccessQueuePermissions.READ, SharedAccessQueuePermissions.PROCESSMESSAGES, SharedAccessQueuePermissions.ADD, SharedAccessQueuePermissions.UPDATE)); String sasString = this.queue.generateSharedAccessSignature(policy1, null); URI queueUri = new URI("http://myaccount.queue.core.windows.net/myqueue"); CloudQueueClient queueClient1 = new CloudQueueClient(new URI("http://myaccount.queue.core.windows.net/"), new StorageCredentialsSharedAccessSignature(sasString)); CloudQueue queue1 = new CloudQueue(queueUri, queueClient1.getCredentials()); queue1.getName(); CloudQueueClient queueClient2 = new CloudQueueClient(new URI("http://myaccount.queue.core.windows.net/"), new StorageCredentialsSharedAccessSignature(sasString)); CloudQueue queue2 = new CloudQueue(queueUri, queueClient2.getCredentials()); queue2.getName(); }
private static void testIsUsePathStyleUri(StorageCredentials creds, String tableEndpoint, boolean usePathStyleUris) throws URISyntaxException, InvalidKeyException, StorageException { CloudTableClient tableClient = new CloudTableClient(new URI(tableEndpoint), creds); assertEquals(usePathStyleUris, tableClient.isUsePathStyleUris()); CloudTable table = tableClient.getTableReference("mytable"); assertEquals(tableEndpoint + "/mytable", table.getUri().toString()); String sasToken = table.generateSharedAccessSignature(null, "fakeIdentifier", null, null, null, null); tableClient = new CloudTableClient(new URI(tableEndpoint), new StorageCredentialsSharedAccessSignature(sasToken)); assertEquals(usePathStyleUris, tableClient.isUsePathStyleUris()); table = new CloudTable(table.getUri(), tableClient.getCredentials()); assertEquals(tableEndpoint + "/mytable", table.getUri().toString()); }
public static CloudBlobClient createCloudBlobClient(SharedAccessAccountPolicy policy, boolean useHttps) throws StorageException, InvalidKeyException, URISyntaxException { CloudStorageAccount sasAccount = getAccount(); final String token = sasAccount.generateSharedAccessSignature(policy); final StorageCredentials creds = new StorageCredentialsSharedAccessSignature(token); final URI blobUri = new URI(useHttps ? "https" : "http", sasAccount.getBlobEndpoint().getAuthority(), sasAccount.getBlobEndpoint().getPath(), sasAccount.getBlobEndpoint().getQuery(), null); sasAccount = new CloudStorageAccount(creds, blobUri, sasAccount.getQueueEndpoint(), sasAccount.getTableEndpoint(), sasAccount.getFileEndpoint()); return sasAccount.createCloudBlobClient(); }
public static CloudQueueClient createCloudQueueClient(SharedAccessAccountPolicy policy, boolean useHttps) throws StorageException, InvalidKeyException, URISyntaxException { CloudStorageAccount sasAccount = getAccount(); final String token = sasAccount.generateSharedAccessSignature(policy); final StorageCredentials creds = new StorageCredentialsSharedAccessSignature(token); final URI queueUri = new URI(useHttps ? "https" : "http", sasAccount.getQueueEndpoint().getAuthority(), sasAccount.getQueueEndpoint().getPath(), sasAccount.getQueueEndpoint().getQuery(), null); sasAccount = new CloudStorageAccount(creds, sasAccount.getBlobEndpoint(), queueUri, sasAccount.getTableEndpoint(), sasAccount.getFileEndpoint()); return sasAccount.createCloudQueueClient(); }
public static CloudTableClient createCloudTableClient(SharedAccessAccountPolicy policy, boolean useHttps) throws StorageException, InvalidKeyException, URISyntaxException { CloudStorageAccount sasAccount = getAccount(); final String token = sasAccount.generateSharedAccessSignature(policy); final StorageCredentials creds = new StorageCredentialsSharedAccessSignature(token); final URI tableUri = new URI(useHttps ? "https" : "http", sasAccount.getTableEndpoint().getAuthority(), sasAccount.getTableEndpoint().getPath(), sasAccount.getTableEndpoint().getQuery(), null); sasAccount = new CloudStorageAccount(creds, sasAccount.getBlobEndpoint(), sasAccount.getQueueEndpoint(), tableUri, sasAccount.getFileEndpoint()); return sasAccount.createCloudTableClient(); }
public static CloudFileClient createCloudFileClient(SharedAccessAccountPolicy policy, boolean useHttps) throws StorageException, InvalidKeyException, URISyntaxException { CloudStorageAccount sasAccount = getAccount(); final String token = sasAccount.generateSharedAccessSignature(policy); final StorageCredentials creds = new StorageCredentialsSharedAccessSignature(token); final URI fileUri = new URI(useHttps ? "https" : "http", sasAccount.getFileEndpoint().getAuthority(), sasAccount.getFileEndpoint().getPath(), sasAccount.getFileEndpoint().getQuery(), null); sasAccount = new CloudStorageAccount( creds, sasAccount.getBlobEndpoint(), sasAccount.getQueueEndpoint(), sasAccount.getTableEndpoint(), fileUri); return sasAccount.createCloudFileClient(); }
new StorageCredentialsSharedAccessSignature( account.generateSharedAccessSignature( getDefaultAccountAccessPolicy())), false,
@Test @Category({ DevFabricTests.class, DevStoreTests.class }) public void testCloudBlobContainerReferenceFromServerSAS() throws StorageException, URISyntaxException, IOException, InvalidKeyException { this.container.create(); CloudBlob blob = BlobTestHelper.uploadNewBlob(this.container, BlobType.BLOCK_BLOB, null, 1024, null); SharedAccessBlobPolicy policy = new SharedAccessBlobPolicy(); Calendar now = Calendar.getInstance(); now.add(Calendar.MINUTE, 10); policy.setSharedAccessExpiryTime(now.getTime()); policy.setPermissions(EnumSet.of(SharedAccessBlobPermissions.READ)); String token = this.container.generateSharedAccessSignature(policy, null); CloudBlobContainer containerSAS = new CloudBlobContainer(this.container.getStorageUri(), new StorageCredentialsSharedAccessSignature(token)); CloudBlob blobRef = containerSAS.getBlobReferenceFromServer(blob.getName()); assertEquals(blob.getClass(), blobRef.getClass()); assertEquals(blob.getUri(), blobRef.getUri()); }
@Test @Category(SlowTests.class) public void testBlobSaS() throws InvalidKeyException, IllegalArgumentException, StorageException, URISyntaxException, InterruptedException { SharedAccessBlobPolicy sp = createSharedAccessPolicy( EnumSet.of(SharedAccessBlobPermissions.READ, SharedAccessBlobPermissions.LIST), 3600); BlobContainerPermissions perms = new BlobContainerPermissions(); perms.getSharedAccessPolicies().put("readperm", sp); this.container.uploadPermissions(perms); Thread.sleep(30000); CloudBlockBlob sasBlob = new CloudBlockBlob(new URI(this.blob.getUri().toString() + "?" + this.blob.generateSharedAccessSignature(null, "readperm"))); sasBlob.download(new ByteArrayOutputStream()); // do not give the client and check that the new blob's client has the correct perms CloudBlob blobFromUri = new CloudBlockBlob(PathUtility.addToQuery(this.blob.getStorageUri(), this.blob.generateSharedAccessSignature(null, "readperm"))); assertEquals(StorageCredentialsSharedAccessSignature.class.toString(), blobFromUri.getServiceClient() .getCredentials().getClass().toString()); // create credentials from sas StorageCredentials creds = new StorageCredentialsSharedAccessSignature( this.blob.generateSharedAccessSignature(null, "readperm")); CloudBlobClient bClient = new CloudBlobClient(sasBlob.getServiceClient().getStorageUri(), creds); CloudBlockBlob blobFromClient = bClient.getContainerReference(this.blob.getContainer().getName()) .getBlockBlobReference(this.blob.getName()); assertEquals(StorageCredentialsSharedAccessSignature.class.toString(), blobFromClient.getServiceClient() .getCredentials().getClass().toString()); assertEquals(bClient, blobFromClient.getServiceClient()); }
@Test public void testFileSAS() throws InvalidKeyException, IllegalArgumentException, StorageException, URISyntaxException, InterruptedException { SharedAccessFilePolicy policy = createSharedAccessPolicy( EnumSet.of(SharedAccessFilePermissions.READ, SharedAccessFilePermissions.LIST), 300); FileSharePermissions perms = new FileSharePermissions(); perms.getSharedAccessPolicies().put("readperm", policy); this.share.uploadPermissions(perms); Thread.sleep(30000); CloudFile sasFile = new CloudFile( new URI(this.file.getUri().toString() + "?" + this.file.generateSharedAccessSignature(null, "readperm"))); sasFile.download(new ByteArrayOutputStream()); // do not give the client and check that the new file's client has the correct permissions CloudFile fileFromUri = new CloudFile(PathUtility.addToQuery(this.file.getStorageUri(), this.file.generateSharedAccessSignature(null, "readperm"))); assertEquals(StorageCredentialsSharedAccessSignature.class.toString(), fileFromUri.getServiceClient().getCredentials().getClass().toString()); // create credentials from sas StorageCredentials creds = new StorageCredentialsSharedAccessSignature( this.file.generateSharedAccessSignature(policy, null, null)); CloudFileClient client = new CloudFileClient(sasFile.getServiceClient().getStorageUri(), creds); CloudFile fileFromClient = client.getShareReference(this.file.getShare().getName()).getRootDirectoryReference() .getFileReference(this.file.getName()); assertEquals(StorageCredentialsSharedAccessSignature.class.toString(), fileFromClient.getServiceClient().getCredentials().getClass().toString()); assertEquals(client, fileFromClient.getServiceClient()); }
StorageCredentials creds = new StorageCredentialsSharedAccessSignature( this.container.generateSharedAccessSignature(null, "readlist")); CloudBlobClient bClient = new CloudBlobClient(this.container.getServiceClient().getStorageUri(), creds);
StorageCredentials creds = new StorageCredentialsSharedAccessSignature( this.share.generateSharedAccessSignature(null, "readlist")); CloudFileClient client = new CloudFileClient(this.share.getServiceClient().getStorageUri(), creds);
StorageCredentialsSharedAccessSignature sasCreds = new StorageCredentialsSharedAccessSignature(sasString); CloudTable directTable = new CloudTable(PathUtility.addToQuery(table.getUri(), sasString)); CloudTable transformedTable = new CloudTable(sasCreds.transformUri(table.getUri()));