Package io.grpc.internal
Class ProxyDetectorImpl
- java.lang.Object
-
- io.grpc.internal.ProxyDetectorImpl
-
- All Implemented Interfaces:
ProxyDetector
class ProxyDetectorImpl extends java.lang.Object implements ProxyDetector
A utility class that detects proxies usingProxySelector
and detects authentication credentials usingAuthenticator
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interface
ProxyDetectorImpl.AuthenticationProvider
This interface makes unit testing easier by avoiding direct calls to static methods.
-
Field Summary
Fields Modifier and Type Field Description private ProxyDetectorImpl.AuthenticationProvider
authenticationProvider
private static ProxyDetectorImpl.AuthenticationProvider
DEFAULT_AUTHENTICATOR
private static com.google.common.base.Supplier<java.net.ProxySelector>
DEFAULT_PROXY_SELECTOR
private static java.lang.String
GRPC_PROXY_ENV_VAR
Deprecated.Use the standard Java proxy configuration instead with flags such as: -Dhttps.proxyHost=HOST -Dhttps.proxyPort=PORTprivate static java.util.logging.Logger
log
private java.net.InetSocketAddress
overrideProxyAddress
(package private) static java.lang.String
PROXY_SCHEME
private com.google.common.base.Supplier<java.net.ProxySelector>
proxySelector
-
Constructor Summary
Constructors Constructor Description ProxyDetectorImpl()
A proxy selector that uses the globalProxySelector.getDefault()
andProxyDetectorImpl.AuthenticationProvider
to detect proxy parameters.ProxyDetectorImpl(com.google.common.base.Supplier<java.net.ProxySelector> proxySelector, ProxyDetectorImpl.AuthenticationProvider authenticationProvider, java.lang.String proxyEnvString)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private ProxiedSocketAddress
detectProxy(java.net.InetSocketAddress targetAddr)
private static java.net.InetSocketAddress
overrideProxy(java.lang.String proxyHostPort)
GRPC_PROXY_EXP is deprecated but let's maintain compatibility for now.ProxiedSocketAddress
proxyFor(java.net.SocketAddress targetServerAddress)
Given a target address, returns a proxied address if a proxy should be used.
-
-
-
Field Detail
-
log
private static final java.util.logging.Logger log
-
DEFAULT_AUTHENTICATOR
private static final ProxyDetectorImpl.AuthenticationProvider DEFAULT_AUTHENTICATOR
-
DEFAULT_PROXY_SELECTOR
private static final com.google.common.base.Supplier<java.net.ProxySelector> DEFAULT_PROXY_SELECTOR
-
GRPC_PROXY_ENV_VAR
@Deprecated private static final java.lang.String GRPC_PROXY_ENV_VAR
Deprecated.Use the standard Java proxy configuration instead with flags such as: -Dhttps.proxyHost=HOST -Dhttps.proxyPort=PORTExperimental environment variable name for enabling proxy support.- See Also:
- Constant Field Values
-
proxySelector
private final com.google.common.base.Supplier<java.net.ProxySelector> proxySelector
-
authenticationProvider
private final ProxyDetectorImpl.AuthenticationProvider authenticationProvider
-
overrideProxyAddress
private final java.net.InetSocketAddress overrideProxyAddress
-
PROXY_SCHEME
static final java.lang.String PROXY_SCHEME
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ProxyDetectorImpl
public ProxyDetectorImpl()
A proxy selector that uses the globalProxySelector.getDefault()
andProxyDetectorImpl.AuthenticationProvider
to detect proxy parameters.
-
ProxyDetectorImpl
ProxyDetectorImpl(com.google.common.base.Supplier<java.net.ProxySelector> proxySelector, ProxyDetectorImpl.AuthenticationProvider authenticationProvider, @Nullable java.lang.String proxyEnvString)
-
-
Method Detail
-
proxyFor
@Nullable public ProxiedSocketAddress proxyFor(java.net.SocketAddress targetServerAddress) throws java.io.IOException
Description copied from interface:ProxyDetector
Given a target address, returns a proxied address if a proxy should be used. If no proxy should be used, then return value will benull
.If the returned
ProxiedSocketAddress
contains any address that needs to be resolved locally, it should be resolved before it's returned, and this method throws if unable to resolve it.- Specified by:
proxyFor
in interfaceProxyDetector
- Parameters:
targetServerAddress
- the target address, which is generally unresolved, because the proxy will resolve it.- Throws:
java.io.IOException
-
detectProxy
private ProxiedSocketAddress detectProxy(java.net.InetSocketAddress targetAddr) throws java.io.IOException
- Throws:
java.io.IOException
-
overrideProxy
private static java.net.InetSocketAddress overrideProxy(java.lang.String proxyHostPort)
GRPC_PROXY_EXP is deprecated but let's maintain compatibility for now.
-
-