Package io.grpc.xds
Class XdsCredentialsProvider
java.lang.Object
io.grpc.xds.XdsCredentialsProvider
- Direct Known Subclasses:
GoogleDefaultXdsCredentialsProvider,InsecureXdsCredentialsProvider,TlsXdsCredentialsProvider
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 by
XdsCredentialsRegistry.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 from isAvailable().
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract StringgetName()Returns the xDS credential name associated with this provider which makes it selectable viaXdsCredentialsRegistry.getProvider(java.lang.String).abstract booleanWhether this provider is available for use, taking the current environment into consideration.protected abstract io.grpc.ChannelCredentialsnewChannelCredentials(Map<String, ?> jsonConfig) Creates aChannelCredentialsfrom the given jsonConfig, ornullif the given config is invalid.abstract intpriority()A priority, from 0 to 10 that this provider should be used, taking the current environment into consideration.
-
Constructor Details
-
XdsCredentialsProvider
public XdsCredentialsProvider()
-
-
Method Details
-
newChannelCredentials
Creates aChannelCredentialsfrom the given jsonConfig, ornullif 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
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.
-