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 usingProxySelectorand detects authentication credentials usingAuthenticator.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interfaceProxyDetectorImpl.AuthenticationProviderThis interface makes unit testing easier by avoiding direct calls to static methods.
-
Field Summary
Fields Modifier and Type Field Description private ProxyDetectorImpl.AuthenticationProviderauthenticationProviderprivate static ProxyDetectorImpl.AuthenticationProviderDEFAULT_AUTHENTICATORprivate static com.google.common.base.Supplier<java.net.ProxySelector>DEFAULT_PROXY_SELECTORprivate static java.lang.StringGRPC_PROXY_ENV_VARDeprecated.Use the standard Java proxy configuration instead with flags such as: -Dhttps.proxyHost=HOST -Dhttps.proxyPort=PORTprivate static java.util.logging.Loggerlogprivate java.net.InetSocketAddressoverrideProxyAddress(package private) static java.lang.StringPROXY_SCHEMEprivate com.google.common.base.Supplier<java.net.ProxySelector>proxySelector
-
Constructor Summary
Constructors Constructor Description ProxyDetectorImpl()A proxy selector that uses the globalProxySelector.getDefault()andProxyDetectorImpl.AuthenticationProviderto 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 ProxiedSocketAddressdetectProxy(java.net.InetSocketAddress targetAddr)private static java.net.InetSocketAddressoverrideProxy(java.lang.String proxyHostPort)GRPC_PROXY_EXP is deprecated but let's maintain compatibility for now.ProxiedSocketAddressproxyFor(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.AuthenticationProviderto 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:ProxyDetectorGiven 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
ProxiedSocketAddresscontains 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:
proxyForin 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.
-
-