Package io.grpc.xds
Class XdsCredentialsProvider
- java.lang.Object
-
- io.grpc.xds.XdsCredentialsProvider
-
@Internal public abstract class XdsCredentialsProvider extends java.lang.ObjectProvider 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.XdsCredentialsProviderin 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
falsefromisAvailable().
-
-
Constructor Summary
Constructors Constructor Description XdsCredentialsProvider()
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description protected abstract java.lang.StringgetName()Returns the xDS credential name associated with this provider which makes it selectable viaXdsCredentialsRegistry.getProvider(java.lang.String).abstract booleanisAvailable()Whether this provider is available for use, taking the current environment into consideration.protected abstract io.grpc.ChannelCredentialsnewChannelCredentials(java.util.Map<java.lang.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.
-
-
-
Method Detail
-
newChannelCredentials
protected abstract io.grpc.ChannelCredentials newChannelCredentials(java.util.Map<java.lang.String,?> jsonConfig)
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
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.
-
-