Class FileWatcherCertificateProvider

java.lang.Object
io.grpc.xds.internal.security.certprovider.CertificateProvider
io.grpc.xds.internal.security.certprovider.FileWatcherCertificateProvider
All Implemented Interfaces:
Closeable, Closeable, AutoCloseable, Runnable

final class FileWatcherCertificateProvider extends CertificateProvider implements Runnable
Implementation of CertificateProvider for file watching cert provider.
  • Field Details

    • logger

      private static final Logger logger
    • scheduledExecutorService

      private final ScheduledExecutorService scheduledExecutorService
    • timeProvider

      private final io.grpc.internal.TimeProvider timeProvider
    • certFile

      private final Path certFile
    • keyFile

      private final Path keyFile
    • trustFile

      private final Path trustFile
    • refreshIntervalInSeconds

      private final long refreshIntervalInSeconds
    • scheduledFuture

      ScheduledFuture<?> scheduledFuture
    • lastModifiedTimeCert

      private FileTime lastModifiedTimeCert
    • lastModifiedTimeKey

      private FileTime lastModifiedTimeKey
    • lastModifiedTimeRoot

      private FileTime lastModifiedTimeRoot
    • shutdown

      private boolean shutdown
  • Constructor Details

  • Method Details

    • start

      public void start()
      Description copied from class: CertificateProvider
      Starts the cert refresh and watcher update cycle.
      Specified by:
      start in class CertificateProvider
    • close

      public void close()
      Description copied from class: CertificateProvider
      Releases all resources and stop cert refreshes and watcher updates.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface Closeable
      Specified by:
      close in class CertificateProvider
    • scheduleNextRefreshCertificate

      private void scheduleNextRefreshCertificate(long delayInSeconds)
    • checkAndReloadCertificates

      void checkAndReloadCertificates()
    • generateErrorIfCurrentCertExpired

      private void generateErrorIfCurrentCertExpired(Throwable t)
    • computeDelaySecondsToCertExpiry

      private long computeDelaySecondsToCertExpiry(X509Certificate lastCert)
    • run

      public void run()
      Specified by:
      run in interface Runnable