Class PropertyUserStore

  • All Implemented Interfaces:
    java.util.EventListener, org.eclipse.jetty.util.component.LifeCycle, org.eclipse.jetty.util.PathWatcher.Listener

    public class PropertyUserStore
    extends UserStore
    implements org.eclipse.jetty.util.PathWatcher.Listener

    This class monitors a property file of the format mentioned below and notifies registered listeners of the changes to the the given file.

      username: password [,rolename ...]
     

    Passwords may be clear text, obfuscated or checksummed. The class Password should be used to generate obfuscated passwords or password checksums.

    If DIGEST Authentication is used, the password must be in a recoverable format, either plain text or obfuscated.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  PropertyUserStore.UserListener  
      • Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle

        org.eclipse.jetty.util.component.LifeCycle.Listener
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.nio.file.Path _configPath  
      protected boolean _firstLoad  
      protected boolean _hotReload  
      protected java.util.List<PropertyUserStore.UserListener> _listeners  
      protected org.eclipse.jetty.util.PathWatcher _pathWatcher  
      • Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        FAILED, RUNNING, STARTED, STARTING, STOPPED, STOPPING
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      protected void doStart()
      Depending on the value of the refresh interval, this method will either start up a scanner thread that will monitor the properties file for changes after it has initially loaded it.
      protected void doStop()  
      java.lang.String getConfig()
      Get the config (as a string)
      java.nio.file.Path getConfigPath()
      Get the Config Path reference.
      org.eclipse.jetty.util.resource.Resource getConfigResource()  
      boolean isHotReload()
      Is hot reload enabled on this user store
      protected void loadUsers()  
      void onPathWatchEvent​(org.eclipse.jetty.util.PathWatcher.PathWatchEvent event)  
      void registerUserListener​(PropertyUserStore.UserListener listener)
      Registers a listener to be notified of the contents of the property file
      void setConfig​(java.lang.String config)
      Set the Config Path from a String reference to a file
      void setConfigFile​(java.io.File configFile)
      Set the Config Path from a File reference
      void setConfigPath​(java.io.File configFile)
      Deprecated.
      void setConfigPath​(java.lang.String configFile)
      Deprecated.
      void setConfigPath​(java.nio.file.Path configPath)
      Set the Config Path
      void setHotReload​(boolean enable)
      Enable Hot Reload of the Property File
      java.lang.String toString()  
      • Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, setStopTimeout, start, stop
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • _configPath

        protected java.nio.file.Path _configPath
      • _pathWatcher

        protected org.eclipse.jetty.util.PathWatcher _pathWatcher
      • _hotReload

        protected boolean _hotReload
      • _firstLoad

        protected boolean _firstLoad
    • Constructor Detail

      • PropertyUserStore

        public PropertyUserStore()
    • Method Detail

      • getConfig

        public java.lang.String getConfig()
        Get the config (as a string)
        Returns:
        the config path as a string
      • setConfig

        public void setConfig​(java.lang.String config)
        Set the Config Path from a String reference to a file
        Parameters:
        config - the config file
      • getConfigPath

        public java.nio.file.Path getConfigPath()
        Get the Config Path reference.
        Returns:
        the config path
      • setConfigPath

        @Deprecated
        public void setConfigPath​(java.lang.String configFile)
        Deprecated.
        Set the Config Path from a String reference to a file
        Parameters:
        configFile - the config file can a be a file path or a reference to a file within a jar file jar:file:
      • setConfigPath

        @Deprecated
        public void setConfigPath​(java.io.File configFile)
        Deprecated.
        Set the Config Path from a File reference
        Parameters:
        configFile - the config file
      • setConfigFile

        public void setConfigFile​(java.io.File configFile)
        Set the Config Path from a File reference
        Parameters:
        configFile - the config file
      • setConfigPath

        public void setConfigPath​(java.nio.file.Path configPath)
        Set the Config Path
        Parameters:
        configPath - the config path
      • getConfigResource

        public org.eclipse.jetty.util.resource.Resource getConfigResource()
        Returns:
        the resource associated with the configured properties file, creating it if necessary
      • isHotReload

        public boolean isHotReload()
        Is hot reload enabled on this user store
        Returns:
        true if hot reload was enabled before startup
      • setHotReload

        public void setHotReload​(boolean enable)
        Enable Hot Reload of the Property File
        Parameters:
        enable - true to enable, false to disable
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class org.eclipse.jetty.util.component.AbstractLifeCycle
      • loadUsers

        protected void loadUsers()
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • doStart

        protected void doStart()
                        throws java.lang.Exception
        Depending on the value of the refresh interval, this method will either start up a scanner thread that will monitor the properties file for changes after it has initially loaded it. Otherwise the users will be loaded and there will be no active monitoring thread so changes will not be detected.
        Overrides:
        doStart in class org.eclipse.jetty.util.component.AbstractLifeCycle
        Throws:
        java.lang.Exception
      • onPathWatchEvent

        public void onPathWatchEvent​(org.eclipse.jetty.util.PathWatcher.PathWatchEvent event)
        Specified by:
        onPathWatchEvent in interface org.eclipse.jetty.util.PathWatcher.Listener
      • doStop

        protected void doStop()
                       throws java.lang.Exception
        Overrides:
        doStop in class org.eclipse.jetty.util.component.AbstractLifeCycle
        Throws:
        java.lang.Exception
      • registerUserListener

        public void registerUserListener​(PropertyUserStore.UserListener listener)
        Registers a listener to be notified of the contents of the property file
        Parameters:
        listener - the user listener