Class ScriptedKeyStrategy

    • Field Detail

      • log

        @Nonnull
        private org.slf4j.Logger log
        Class logger.
      • customObject

        @Nullable
        private Object customObject
        Custom object for script.
      • updateInterval

        @Nonnull
        private Duration updateInterval
        Time between key update checks. Default value: (PT15M).
      • updateTaskTimer

        @Nullable
        private Timer updateTaskTimer
        Timer used to schedule update tasks.
      • internalTaskTimer

        @Nullable
        private Timer internalTaskTimer
        Timer used to schedule update tasks if no external one set.
      • updateTask

        @Nullable
        private TimerTask updateTask
        Task that checks for updated key version.
      • cacheSize

        @NonNegative
        private long cacheSize
        Size of key cache to maintain.
    • Constructor Detail

      • ScriptedKeyStrategy

        public ScriptedKeyStrategy()
        Constructor.
    • Method Detail

      • setKeyScript

        public void setKeyScript​(@Nonnull
                                 EvaluableScript script)
        Set the script to run to access keys.
        Parameters:
        script - script to run
      • setCustomObject

        public void setCustomObject​(@Nullable
                                    Object object)
        Set the custom (externally provided) object.
        Parameters:
        object - the custom object
      • setUpdateInterval

        public void setUpdateInterval​(@Nonnull
                                      Duration interval)
        Set the time between key update checks. A value of 0 indicates that no updates will be performed. This setting cannot be changed after the service has been initialized.
        Parameters:
        interval - time between key update checks
      • setUpdateTaskTimer

        public void setUpdateTaskTimer​(@Nullable
                                       Timer timer)
        Set the timer used to schedule update tasks. This setting cannot be changed after the service has been initialized.
        Parameters:
        timer - timer used to schedule update tasks
      • setCacheSize

        public void setCacheSize​(@NonNegative
                                 long size)
        Set the number of keys to cache.

        Defaults to 30.

        Parameters:
        size - size of cache
      • doDestroy

        protected void doDestroy()
        Performs component specific destruction logic. This method is executed within the lock on the object being destroyed. The default implementation of this method is a no-op.
        Overrides:
        doDestroy in class AbstractInitializableComponent
      • updateDefaultKey

        private void updateDefaultKey()
                               throws KeyException
        Update the loaded copy of the default key based on the current key version if it's out of date (loading key version from scratch if need be).

        Also purge cache to limit size.

        Throws:
        KeyException - if the key cannot be updated