Package io.grpc.xds
Class XdsCredentialsProvider
- java.lang.Object
-
- io.grpc.xds.XdsCredentialsProvider
-
- Direct Known Subclasses:
GoogleDefaultXdsCredentialsProvider
,InsecureXdsCredentialsProvider
,TlsXdsCredentialsProvider
@Internal public abstract class XdsCredentialsProvider extends java.lang.Object
Provider of credentials which can be consumed by clients for xds communications. The actual credential to be used for a particular xds communication will be chosen based on the bootstrap configuration.Implementations can be automatically discovered by gRPC via Java's SPI mechanism. For automatic discovery, the implementation must have a zero-argument constructor and include a resource named
META-INF/services/io.grpc.xds.XdsCredentialsProvider
in their JAR. The file's contents should be the implementation's class name. Implementations that need arguments in their constructor can be manually registered byXdsCredentialsRegistry.register(io.grpc.xds.XdsCredentialsProvider)
.Implementations should not throw. If they do, it may interrupt class loading. If exceptions may reasonably occur for implementation-specific reasons, implementations should generally handle the exception gracefully and return
false
fromisAvailable()
.
-
-
Constructor Summary
Constructors Constructor Description XdsCredentialsProvider()
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description protected abstract java.lang.String
getName()
Returns the xDS credential name associated with this provider which makes it selectable viaXdsCredentialsRegistry.getProvider(java.lang.String)
.abstract boolean
isAvailable()
Whether this provider is available for use, taking the current environment into consideration.protected abstract io.grpc.ChannelCredentials
newChannelCredentials(java.util.Map<java.lang.String,?> jsonConfig)
Creates aChannelCredentials
from the given jsonConfig, ornull
if the given config is invalid.abstract int
priority()
A priority, from 0 to 10 that this provider should be used, taking the current environment into consideration.
-
-
-
Method Detail
-
newChannelCredentials
protected abstract io.grpc.ChannelCredentials newChannelCredentials(java.util.Map<java.lang.String,?> jsonConfig)
Creates aChannelCredentials
from the given jsonConfig, ornull
if the given config is invalid. The provider is free to ignore the config if it's not needed for producing the channel credentials.- Parameters:
jsonConfig
- json config that can be consumed by the provider to create the channel credentials
-
getName
protected abstract java.lang.String getName()
Returns the xDS credential name associated with this provider which makes it selectable viaXdsCredentialsRegistry.getProvider(java.lang.String)
. This is called only when the class is loaded. It shouldn't change, and there is no point doing so.
-
isAvailable
public abstract boolean isAvailable()
Whether this provider is available for use, taking the current environment into consideration. Iffalse
,newChannelCredentials(java.util.Map<java.lang.String, ?>)
is not safe to be called.
-
priority
public abstract int priority()
A priority, from 0 to 10 that this provider should be used, taking the current environment into consideration. 5 should be considered the default, and then tweaked based on environment detection. A priority of 0 does not imply that the provider wouldn't work; just that it should be last in line.
-
-