@Override public BlobContainerPermissions postProcessResponse(HttpURLConnection connection, CloudBlobContainer container, CloudBlobClient client, OperationContext context, BlobContainerPermissions containerAcl) throws Exception { HashMap<String, SharedAccessBlobPolicy> accessIds = SharedAccessPolicyHandler.getAccessIdentifiers(this .getConnection().getInputStream(), SharedAccessBlobPolicy.class); for (final String key : accessIds.keySet()) { containerAcl.getSharedAccessPolicies().put(key, accessIds.get(key)); } return containerAcl; } };
@Override public BlobContainerPermissions postProcessResponse(HttpURLConnection connection, CloudBlobContainer container, CloudBlobClient client, OperationContext context, BlobContainerPermissions containerAcl) throws Exception { HashMap<String, SharedAccessBlobPolicy> accessIds = SharedAccessPolicyHandler.getAccessIdentifiers(this .getConnection().getInputStream(), SharedAccessBlobPolicy.class); for (final String key : accessIds.keySet()) { containerAcl.getSharedAccessPolicies().put(key, accessIds.get(key)); } return containerAcl; } };
containerPermissions.getSharedAccessPolicies().put("heath", policy); container.uploadPermissions(containerPermissions);
try { final StringWriter outBuffer = new StringWriter(); SharedAccessPolicySerializer.writeSharedAccessIdentifiersToStream(permissions.getSharedAccessPolicies(), outBuffer); final byte[] aclBytes = outBuffer.toString().getBytes(Constants.UTF8_CHARSET);
try { final StringWriter outBuffer = new StringWriter(); SharedAccessPolicySerializer.writeSharedAccessIdentifiersToStream(permissions.getSharedAccessPolicies(), outBuffer); final byte[] aclBytes = outBuffer.toString().getBytes(Constants.UTF8_CHARSET);
private static void assertPermissionsEqual(BlobContainerPermissions expected, BlobContainerPermissions actual) { assertEquals(expected.getPublicAccess(), actual.getPublicAccess()); HashMap<String, SharedAccessBlobPolicy> expectedPolicies = expected.getSharedAccessPolicies(); HashMap<String, SharedAccessBlobPolicy> actualPolicies = actual.getSharedAccessPolicies(); assertEquals("SharedAccessPolicies.Count", expectedPolicies.size(), actualPolicies.size()); for (String name : expectedPolicies.keySet()) { assertTrue("Key" + name + " doesn't exist", actualPolicies.containsKey(name)); SharedAccessBlobPolicy expectedPolicy = expectedPolicies.get(name); SharedAccessBlobPolicy actualPolicy = actualPolicies.get(name); assertEquals("Policy: " + name + "\tPermissions\n", expectedPolicy.getPermissions().toString(), actualPolicy.getPermissions().toString()); assertEquals("Policy: " + name + "\tStartDate\n", expectedPolicy.getSharedAccessStartTime().toString(), actualPolicy.getSharedAccessStartTime().toString()); assertEquals("Policy: " + name + "\tExpireDate\n", expectedPolicy.getSharedAccessExpiryTime().toString(), actualPolicy.getSharedAccessExpiryTime().toString()); } }
perms.getSharedAccessPolicies().put("readwrite" + bits, createSharedAccessPolicy(permissions, 3600)); containers.get(bits).uploadPermissions(perms);
assertEquals(0, permissions.getSharedAccessPolicies().size()); policy.setSharedAccessStartTime(start); policy.setSharedAccessExpiryTime(expiry); permissions.getSharedAccessPolicies().put("key1", policy); permissions.getSharedAccessPolicies().clear(); this.container.uploadPermissions(permissions); Thread.sleep(30000);
expectedPermissions.getSharedAccessPolicies().put(UUID.randomUUID().toString(), policy1);
BlobContainerPermissions perms = new BlobContainerPermissions(); perms.getSharedAccessPolicies().put("readwrite", policy); this.container.uploadPermissions(perms); Thread.sleep(30000); perms = new BlobContainerPermissions(); perms.getSharedAccessPolicies().put("read", policy2); this.container.uploadPermissions(perms); Thread.sleep(30000);
BlobContainerPermissions perms = new BlobContainerPermissions(); perms.getSharedAccessPolicies().put("full", sp1); perms.getSharedAccessPolicies().put("readlist", sp2); this.container.uploadPermissions(perms); Thread.sleep(30000);
@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()); }
BlobContainerPermissions perms = new BlobContainerPermissions(); perms.getSharedAccessPolicies().put("readperm", sp); this.container.uploadPermissions(perms); Thread.sleep(30000);
containerPermissions.getSharedAccessPolicies().put("testwasbpolicy", sasPolicy); container.uploadPermissions(containerPermissions);
containerPermissions.getSharedAccessPolicies().put("testwasbpolicy", sasPolicy); container.uploadPermissions(containerPermissions);
perms.getSharedAccessPolicies().put("read", policy); this.container.uploadPermissions(perms); Thread.sleep(30000); perms.setPublicAccess(BlobContainerPublicAccessType.BLOB); perms.getSharedAccessPolicies().put("write", policy); this.container.uploadPermissions(perms); Thread.sleep(30000);