Package io.grpc.xds.internal.security
Class SslContextProvider
- java.lang.Object
-
- io.grpc.xds.internal.security.SslContextProvider
-
- All Implemented Interfaces:
Closeable,java.io.Closeable,java.lang.AutoCloseable
- Direct Known Subclasses:
DynamicSslContextProvider
@Internal public abstract class SslContextProvider extends java.lang.Object implements Closeable
A SslContextProvider is a "container" or provider of SslContext. This is used by gRPC-xds to obtain an SslContext, so is not part of the public API of gRPC. This "container" may represent a stream that is receiving the requested secret(s) or it could represent file-system based secret(s) that are dynamic.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSslContextProvider.Callbackprotected static interfaceSslContextProvider.SslContextGetterAllows implementations to compute or get SslContext.
-
Field Summary
Fields Modifier and Type Field Description protected EnvoyServerProtoData.BaseTlsContexttlsContext
-
Constructor Summary
Constructors Modifier Constructor Description protectedSslContextProvider(EnvoyServerProtoData.BaseTlsContext tlsContext)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract voidaddCallback(SslContextProvider.Callback callback)Registers a callback on the given executor.abstract voidclose()Closes this provider and releases any resources.protected CommonTlsContextgetCommonTlsContext()EnvoyServerProtoData.DownstreamTlsContextgetDownstreamTlsContext()Returns the DownstreamTlsContext in this SslContextProvider if this is server side.EnvoyServerProtoData.UpstreamTlsContextgetUpstreamTlsContext()Returns the UpstreamTlsContext in this SslContextProvider if this is client side.protected voidperformCallback(SslContextProvider.SslContextGetter sslContextGetter, SslContextProvider.Callback callback)protected voidsetClientAuthValues(io.netty.handler.ssl.SslContextBuilder sslContextBuilder, XdsTrustManagerFactory xdsTrustManagerFactory)
-
-
-
Field Detail
-
tlsContext
protected final EnvoyServerProtoData.BaseTlsContext tlsContext
-
-
Constructor Detail
-
SslContextProvider
protected SslContextProvider(EnvoyServerProtoData.BaseTlsContext tlsContext)
-
-
Method Detail
-
getCommonTlsContext
protected CommonTlsContext getCommonTlsContext()
-
setClientAuthValues
protected void setClientAuthValues(io.netty.handler.ssl.SslContextBuilder sslContextBuilder, XdsTrustManagerFactory xdsTrustManagerFactory) throws java.security.cert.CertificateException, java.io.IOException, java.security.cert.CertStoreException- Throws:
java.security.cert.CertificateExceptionjava.io.IOExceptionjava.security.cert.CertStoreException
-
getDownstreamTlsContext
public EnvoyServerProtoData.DownstreamTlsContext getDownstreamTlsContext()
Returns the DownstreamTlsContext in this SslContextProvider if this is server side.
-
getUpstreamTlsContext
public EnvoyServerProtoData.UpstreamTlsContext getUpstreamTlsContext()
Returns the UpstreamTlsContext in this SslContextProvider if this is client side.
-
close
public abstract void close()
Closes this provider and releases any resources.
-
addCallback
public abstract void addCallback(SslContextProvider.Callback callback)
Registers a callback on the given executor. The callback will run when SslContext becomes available or immediately if the result is already available.
-
performCallback
protected final void performCallback(SslContextProvider.SslContextGetter sslContextGetter, SslContextProvider.Callback callback)
-
-