Class FileWatcherCertificateProvider
- java.lang.Object
-
- io.grpc.xds.internal.security.certprovider.CertificateProvider
-
- io.grpc.xds.internal.security.certprovider.FileWatcherCertificateProvider
-
- All Implemented Interfaces:
Closeable,java.io.Closeable,java.lang.AutoCloseable,java.lang.Runnable
final class FileWatcherCertificateProvider extends CertificateProvider implements java.lang.Runnable
Implementation ofCertificateProviderfor file watching cert provider.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classFileWatcherCertificateProvider.Factory-
Nested classes/interfaces inherited from class io.grpc.xds.internal.security.certprovider.CertificateProvider
CertificateProvider.DistributorWatcher, CertificateProvider.Watcher
-
-
Field Summary
Fields Modifier and Type Field Description private java.nio.file.PathcertFileprivate java.nio.file.PathkeyFileprivate java.nio.file.attribute.FileTimelastModifiedTimeCertprivate java.nio.file.attribute.FileTimelastModifiedTimeKeyprivate java.nio.file.attribute.FileTimelastModifiedTimeRootprivate static java.util.logging.Loggerloggerprivate longrefreshIntervalInSecondsprivate java.util.concurrent.ScheduledExecutorServicescheduledExecutorService(package private) java.util.concurrent.ScheduledFuture<?>scheduledFutureprivate booleanshutdownprivate io.grpc.internal.TimeProvidertimeProviderprivate java.nio.file.PathtrustFile
-
Constructor Summary
Constructors Constructor Description FileWatcherCertificateProvider(CertificateProvider.DistributorWatcher watcher, boolean notifyCertUpdates, java.lang.String certFile, java.lang.String keyFile, java.lang.String trustFile, long refreshIntervalInSeconds, java.util.concurrent.ScheduledExecutorService scheduledExecutorService, io.grpc.internal.TimeProvider timeProvider)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) voidcheckAndReloadCertificates()voidclose()Releases all resources and stop cert refreshes and watcher updates.private longcomputeDelaySecondsToCertExpiry(java.security.cert.X509Certificate lastCert)private voidgenerateErrorIfCurrentCertExpired(java.lang.Throwable t)voidrun()private voidscheduleNextRefreshCertificate(long delayInSeconds)voidstart()Starts the cert refresh and watcher update cycle.-
Methods inherited from class io.grpc.xds.internal.security.certprovider.CertificateProvider
getWatcher, isNotifyCertUpdates
-
-
-
-
Field Detail
-
logger
private static final java.util.logging.Logger logger
-
scheduledExecutorService
private final java.util.concurrent.ScheduledExecutorService scheduledExecutorService
-
timeProvider
private final io.grpc.internal.TimeProvider timeProvider
-
certFile
private final java.nio.file.Path certFile
-
keyFile
private final java.nio.file.Path keyFile
-
trustFile
private final java.nio.file.Path trustFile
-
refreshIntervalInSeconds
private final long refreshIntervalInSeconds
-
scheduledFuture
java.util.concurrent.ScheduledFuture<?> scheduledFuture
-
lastModifiedTimeCert
private java.nio.file.attribute.FileTime lastModifiedTimeCert
-
lastModifiedTimeKey
private java.nio.file.attribute.FileTime lastModifiedTimeKey
-
lastModifiedTimeRoot
private java.nio.file.attribute.FileTime lastModifiedTimeRoot
-
shutdown
private boolean shutdown
-
-
Constructor Detail
-
FileWatcherCertificateProvider
FileWatcherCertificateProvider(CertificateProvider.DistributorWatcher watcher, boolean notifyCertUpdates, java.lang.String certFile, java.lang.String keyFile, java.lang.String trustFile, long refreshIntervalInSeconds, java.util.concurrent.ScheduledExecutorService scheduledExecutorService, io.grpc.internal.TimeProvider timeProvider)
-
-
Method Detail
-
start
public void start()
Description copied from class:CertificateProviderStarts the cert refresh and watcher update cycle.- Specified by:
startin classCertificateProvider
-
close
public void close()
Description copied from class:CertificateProviderReleases all resources and stop cert refreshes and watcher updates.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein classCertificateProvider
-
scheduleNextRefreshCertificate
private void scheduleNextRefreshCertificate(long delayInSeconds)
-
checkAndReloadCertificates
void checkAndReloadCertificates()
-
generateErrorIfCurrentCertExpired
private void generateErrorIfCurrentCertExpired(java.lang.Throwable t)
-
computeDelaySecondsToCertExpiry
private long computeDelaySecondsToCertExpiry(java.security.cert.X509Certificate lastCert)
-
run
public void run()
- Specified by:
runin interfacejava.lang.Runnable
-
-