Package io.grpc.xds.internal.security
Class TlsContextManagerImpl
java.lang.Object
io.grpc.xds.internal.security.TlsContextManagerImpl
- All Implemented Interfaces:
TlsContextManager
Class to manage
SslContextProvider objects created from inputs we get from xDS. Used by
gRPC-xds to access the SslContext's and is not public API. This manager manages the life-cycle of
SslContextProvider objects as shared resources via ref-counting as described in ReferenceCountingMap.-
Field Summary
FieldsModifier and TypeFieldDescription -
Constructor Summary
ConstructorsConstructorDescriptionTlsContextManagerImpl(Bootstrapper.BootstrapInfo bootstrapInfo) Create a TlsContextManagerImpl instance using the passed inBootstrapper.BootstrapInfo.TlsContextManagerImpl(ReferenceCountingMap.ValueFactory<EnvoyServerProtoData.UpstreamTlsContext, SslContextProvider> clientFactory, ReferenceCountingMap.ValueFactory<EnvoyServerProtoData.DownstreamTlsContext, SslContextProvider> serverFactory) -
Method Summary
Modifier and TypeMethodDescriptionfindOrCreateClientSslContextProvider(EnvoyServerProtoData.UpstreamTlsContext upstreamTlsContext) Creates a SslContextProvider.findOrCreateServerSslContextProvider(EnvoyServerProtoData.DownstreamTlsContext downstreamTlsContext) Creates a SslContextProvider.releaseClientSslContextProvider(SslContextProvider clientSslContextProvider) Releases an instance of the given client-sideSslContextProvider.releaseServerSslContextProvider(SslContextProvider serverSslContextProvider) Releases an instance of the given server-sideSslContextProvider.
-
Field Details
-
mapForClients
private final ReferenceCountingMap<EnvoyServerProtoData.UpstreamTlsContext,SslContextProvider> mapForClients -
mapForServers
private final ReferenceCountingMap<EnvoyServerProtoData.DownstreamTlsContext,SslContextProvider> mapForServers
-
-
Constructor Details
-
TlsContextManagerImpl
Create a TlsContextManagerImpl instance using the passed inBootstrapper.BootstrapInfo. -
TlsContextManagerImpl
TlsContextManagerImpl(ReferenceCountingMap.ValueFactory<EnvoyServerProtoData.UpstreamTlsContext, SslContextProvider> clientFactory, ReferenceCountingMap.ValueFactory<EnvoyServerProtoData.DownstreamTlsContext, SslContextProvider> serverFactory)
-
-
Method Details
-
findOrCreateServerSslContextProvider
public SslContextProvider findOrCreateServerSslContextProvider(EnvoyServerProtoData.DownstreamTlsContext downstreamTlsContext) Description copied from interface:TlsContextManagerCreates a SslContextProvider. Used for retrieving a server-side SslContext.- Specified by:
findOrCreateServerSslContextProviderin interfaceTlsContextManager
-
findOrCreateClientSslContextProvider
public SslContextProvider findOrCreateClientSslContextProvider(EnvoyServerProtoData.UpstreamTlsContext upstreamTlsContext) Description copied from interface:TlsContextManagerCreates a SslContextProvider. Used for retrieving a client-side SslContext.- Specified by:
findOrCreateClientSslContextProviderin interfaceTlsContextManager
-
releaseClientSslContextProvider
public SslContextProvider releaseClientSslContextProvider(SslContextProvider clientSslContextProvider) Description copied from interface:TlsContextManagerReleases an instance of the given client-sideSslContextProvider.The instance must have been obtained from
TlsContextManager.findOrCreateClientSslContextProvider(io.grpc.xds.EnvoyServerProtoData.UpstreamTlsContext). Otherwise will throw IllegalArgumentException.Caller must not release a reference more than once. It's advised that you clear the reference to the instance with the null returned by this method.
- Specified by:
releaseClientSslContextProviderin interfaceTlsContextManager
-
releaseServerSslContextProvider
public SslContextProvider releaseServerSslContextProvider(SslContextProvider serverSslContextProvider) Description copied from interface:TlsContextManagerReleases an instance of the given server-sideSslContextProvider.The instance must have been obtained from
TlsContextManager.findOrCreateServerSslContextProvider(io.grpc.xds.EnvoyServerProtoData.DownstreamTlsContext). Otherwise will throw IllegalArgumentException.Caller must not release a reference more than once. It's advised that you clear the reference to the instance with the null returned by this method.
- Specified by:
releaseServerSslContextProviderin interfaceTlsContextManager
-