Package com.nimbusds.jose.util
Class DefaultResourceRetriever
java.lang.Object
com.nimbusds.jose.util.AbstractRestrictedResourceRetriever
com.nimbusds.jose.util.DefaultResourceRetriever
- All Implemented Interfaces:
ResourceRetriever,RestrictedResourceRetriever
@ThreadSafe
public class DefaultResourceRetriever
extends AbstractRestrictedResourceRetriever
implements RestrictedResourceRetriever
The default retriever of resources specified by HTTP(S) or file based URL.
Provides setting of a HTTP proxy, HTTP connect and read timeouts as well as
a size limit of the retrieved entity. Caching header directives are not
honoured.
- Version:
- 2022-04-07
- Author:
- Vladimir Dzhuvinov, Artun Subasi, Imre Paladji
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new resource retriever.DefaultResourceRetriever(int connectTimeout, int readTimeout) Creates a new resource retriever.DefaultResourceRetriever(int connectTimeout, int readTimeout, int sizeLimit) Creates a new resource retriever.DefaultResourceRetriever(int connectTimeout, int readTimeout, int sizeLimit, boolean disconnectAfterUse) Creates a new resource retriever.DefaultResourceRetriever(int connectTimeout, int readTimeout, int sizeLimit, boolean disconnectAfterUse, SSLSocketFactory sslSocketFactory) Creates a new resource retriever. -
Method Summary
Modifier and TypeMethodDescriptionbooleanReturnstrueif the disconnect method of the underlyingHttpURLConnectionwill be called after trying to retrieve the resource.getProxy()Returns the HTTP proxy to use when opening the HttpURLConnection to retrieve the resource.protected HttpURLConnectionopenConnection(URL url) Deprecated.protected URLConnectionopenFileConnection(URL url) Opens a connection the specified file URL.protected HttpURLConnectionopenHTTPConnection(URL url) Opens a connection the specified HTTP(S) URL.retrieveResource(URL url) Retrieves the resource from the specified HTTP(S) URL.voidsetDisconnectsAfterUse(boolean disconnectAfterUse) Controls calling of the disconnect method the underlyingHttpURLConnectionafter trying to retrieve the resource.voidSets the HTTP proxy to use when opening the HttpURLConnection to retrieve the resource.Methods inherited from class com.nimbusds.jose.util.AbstractRestrictedResourceRetriever
getConnectTimeout, getHeaders, getReadTimeout, getSizeLimit, setConnectTimeout, setHeaders, setReadTimeout, setSizeLimitMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.nimbusds.jose.util.RestrictedResourceRetriever
getConnectTimeout, getHeaders, getReadTimeout, getSizeLimit, setConnectTimeout, setHeaders, setReadTimeout, setSizeLimit
-
Constructor Details
-
DefaultResourceRetriever
public DefaultResourceRetriever()Creates a new resource retriever. The HTTP timeouts and entity size limit are set to zero (infinite). -
DefaultResourceRetriever
Creates a new resource retriever. The HTTP entity size limit is set to zero (infinite).- Parameters:
connectTimeout- The HTTP connects timeout, in milliseconds, zero for infinite. Must not be negative.readTimeout- The HTTP read timeout, in milliseconds, zero for infinite. Must not be negative.
-
DefaultResourceRetriever
Creates a new resource retriever.- Parameters:
connectTimeout- The HTTP connects timeout, in milliseconds, zero for infinite. Must not be negative.readTimeout- The HTTP read timeout, in milliseconds, zero for infinite. Must not be negative.sizeLimit- The HTTP entity size limit, in bytes, zero for infinite. Must not be negative.
-
DefaultResourceRetriever
public DefaultResourceRetriever(int connectTimeout, int readTimeout, int sizeLimit, boolean disconnectAfterUse) Creates a new resource retriever.- Parameters:
connectTimeout- The HTTP connects timeout, in milliseconds, zero for infinite. Must not be negative.readTimeout- The HTTP read timeout, in milliseconds, zero for infinite. Must not be negative.sizeLimit- The HTTP entity size limit, in bytes, zero for infinite. Must not be negative.disconnectAfterUse- Iftruethe disconnect method of the underlyingHttpURLConnectionwill be called after trying to retrieve the resource. Whether the TCP socket is actually closed or reused depends on the underlying HTTP implementation and the setting of thekeep.alivesystem property.
-
DefaultResourceRetriever
public DefaultResourceRetriever(int connectTimeout, int readTimeout, int sizeLimit, boolean disconnectAfterUse, SSLSocketFactory sslSocketFactory) Creates a new resource retriever.- Parameters:
connectTimeout- The HTTP connects timeout, in milliseconds, zero for infinite. Must not be negative.readTimeout- The HTTP read timeout, in milliseconds, zero for infinite. Must not be negative.sizeLimit- The HTTP entity size limit, in bytes, zero for infinite. Must not be negative.disconnectAfterUse- Iftruethe disconnect method of the underlyingHttpURLConnectionwill be called after trying to retrieve the resource. Whether the TCP socket is actually closed or reused depends on the underlying HTTP implementation and the setting of thekeep.alivesystem property.sslSocketFactory- An SSLSocketFactory for establishing the TLS connections,nullto use the default one.
-
-
Method Details
-
disconnectsAfterUse
Returnstrueif the disconnect method of the underlyingHttpURLConnectionwill be called after trying to retrieve the resource. Whether the TCP socket is actually closed or reused depends on the underlying HTTP implementation and the setting of thekeep.alivesystem property.- Returns:
- If
truethe disconnect method of the underlyingHttpURLConnectionwill be called after trying to retrieve the resource.
-
setDisconnectsAfterUse
Controls calling of the disconnect method the underlyingHttpURLConnectionafter trying to retrieve the resource. Whether the TCP socket is actually closed or reused depends on the underlying HTTP implementation and the setting of thekeep.alivesystem property. Iftruethe disconnect method of the underlyingHttpURLConnectionwill be called after trying to retrieve the resource. -
getProxy
Returns the HTTP proxy to use when opening the HttpURLConnection to retrieve the resource. Note that the JVM may have a system wide proxy configured via thehttps.proxyHostJava system property.- Returns:
- The proxy to use or
nullif no proxy should be used.
-
setProxy
Sets the HTTP proxy to use when opening the HttpURLConnection to retrieve the resource. Note that the JVM may have a system wide proxy configured via thehttps.proxyHostJava system property.- Parameters:
proxy- The proxy to use ornullif no proxy should be used.
-
retrieveResource
Description copied from interface:ResourceRetrieverRetrieves the resource from the specified HTTP(S) URL.- Specified by:
retrieveResourcein interfaceResourceRetriever- Parameters:
url- The URL of the resource. Its scheme must be HTTP or HTTPS. Must not benull.- Returns:
- The retrieved resource.
- Throws:
IOException- If the HTTP connection to the specified URL failed or the resource couldn't be retrieved.
-
openConnection
Deprecated.Opens a connection the specified HTTP(S) URL. Uses the configuredProxyif available.- Parameters:
url- The URL of the resource. Its scheme must be HTTP or HTTPS. Must not benull.- Returns:
- The opened HTTP(S) connection
- Throws:
IOException- If the HTTP(S) connection to the specified URL failed.- See Also:
-
openHTTPConnection
Opens a connection the specified HTTP(S) URL. Uses the configuredProxyif available.- Parameters:
url- The URL of the resource. Its scheme must be "http" or "https". Must not benull.- Returns:
- The opened HTTP(S) connection
- Throws:
IOException- If the HTTP(S) connection to the specified URL failed.
-
openFileConnection
Opens a connection the specified file URL.- Parameters:
url- The URL of the resource. Its scheme must be "file". Must not benull.- Returns:
- The opened file connection.
- Throws:
IOException- If the file connection to the specified URL failed.
-