You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ma...@apache.org on 2020/03/26 18:14:33 UTC
svn commit: r1875730 - in /jackrabbit/oak/branches/1.22: ./
oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java
Author: mattryan
Date: Thu Mar 26 18:14:33 2020
New Revision: 1875730
URL: http://svn.apache.org/viewvc?rev=1875730&view=rev
Log:
OAK-8969: Use domain as part of download URI cache key.
This will prevent a cached download URI being used improperly when a previous request used the domain override and a subsequent request did not (or vice versa).
Modified:
jackrabbit/oak/branches/1.22/ (props changed)
jackrabbit/oak/branches/1.22/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java
Propchange: jackrabbit/oak/branches/1.22/
------------------------------------------------------------------------------
Merged /jackrabbit/oak/trunk:r1875608
Modified: jackrabbit/oak/branches/1.22/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.22/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java?rev=1875730&r1=1875729&r2=1875730&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.22/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java (original)
+++ jackrabbit/oak/branches/1.22/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java Thu Mar 26 18:14:33 2020
@@ -116,10 +116,12 @@ public class AzureBlobStoreBackend exten
private Integer requestTimeout;
private int httpDownloadURIExpirySeconds = 0; // disabled by default
private int httpUploadURIExpirySeconds = 0; // disabled by default
+ private String uploadDomainOverride = null;
+ private String downloadDomainOverride = null;
private boolean createBlobContainer = true;
private boolean presignedDownloadURIVerifyExists = true;
- private Cache<DataIdentifier, URI> httpDownloadURICache;
+ private Cache<String, URI> httpDownloadURICache;
private byte[] secret;
@@ -196,6 +198,8 @@ public class AzureBlobStoreBackend exten
this.setHttpDownloadURICacheSize(0); // default
}
}
+ uploadDomainOverride = properties.getProperty(AzureConstants.PRESIGNED_HTTP_UPLOAD_URI_DOMAIN_OVERRIDE, null);
+ downloadDomainOverride = properties.getProperty(AzureConstants.PRESIGNED_HTTP_DOWNLOAD_URI_DOMAIN_OVERRIDE, null);
}
catch (StorageException e) {
throw new DataStoreException(e);
@@ -786,8 +790,13 @@ public class AzureBlobStoreBackend exten
if (httpDownloadURIExpirySeconds > 0) {
+ String domain = getDirectDownloadBlobStorageDomain(downloadOptions.isDomainOverrideIgnored());
+ if (null == domain) {
+ throw new NullPointerException("Could not determine domain for direct download");
+ }
+
if (null != httpDownloadURICache) {
- uri = httpDownloadURICache.getIfPresent(identifier);
+ uri = httpDownloadURICache.getIfPresent(identifier.toString() + domain);
}
if (null == uri) {
if (presignedDownloadURIVerifyExists) {
@@ -819,18 +828,14 @@ public class AzureBlobStoreBackend exten
headers.setContentDisposition(contentDisposition);
}
- String domain = getDirectDownloadBlobStorageDomain(downloadOptions.isDomainOverrideIgnored());
- if (null == domain) {
- throw new NullPointerException("Could not determine domain for direct download");
- }
-
uri = createPresignedURI(key,
EnumSet.of(SharedAccessBlobPermissions.READ),
httpDownloadURIExpirySeconds,
headers,
domain);
if (uri != null && httpDownloadURICache != null) {
- httpDownloadURICache.put(identifier, uri);
+ httpDownloadURICache.put(identifier.toString() + domain,
+ uri);
}
}
}
@@ -1051,7 +1056,7 @@ public class AzureBlobStoreBackend exten
private String getDirectDownloadBlobStorageDomain(boolean ignoreDomainOverride) {
String domain = ignoreDomainOverride
? getDefaultBlobStorageDomain()
- : properties.getProperty(AzureConstants.PRESIGNED_HTTP_DOWNLOAD_URI_DOMAIN_OVERRIDE, null);
+ : downloadDomainOverride;
if (Strings.isNullOrEmpty(domain)) {
domain = getDefaultBlobStorageDomain();
}
@@ -1061,7 +1066,7 @@ public class AzureBlobStoreBackend exten
private String getDirectUploadBlobStorageDomain(boolean ignoreDomainOverride) {
String domain = ignoreDomainOverride
? getDefaultBlobStorageDomain()
- : properties.getProperty(AzureConstants.PRESIGNED_HTTP_UPLOAD_URI_DOMAIN_OVERRIDE, null);
+ : uploadDomainOverride;
if (Strings.isNullOrEmpty(domain)) {
domain = getDefaultBlobStorageDomain();
}