java.lang.Object
org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.ContainerLifeCycle
org.eclipse.jetty.security.UserStore
org.eclipse.jetty.security.PropertyUserStore
- All Implemented Interfaces:
org.eclipse.jetty.util.component.Container,org.eclipse.jetty.util.component.Destroyable,org.eclipse.jetty.util.component.Dumpable,org.eclipse.jetty.util.component.Dumpable.DumpableContainer,org.eclipse.jetty.util.component.LifeCycle,org.eclipse.jetty.util.Scanner.DiscreteListener,org.eclipse.jetty.util.Scanner.Listener
public class PropertyUserStore
extends UserStore
implements org.eclipse.jetty.util.Scanner.DiscreteListener
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 ClassesNested classes/interfaces inherited from class org.eclipse.jetty.security.UserStore
UserStore.UserNested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener, org.eclipse.jetty.util.component.AbstractLifeCycle.StopExceptionNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.ListenerNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
org.eclipse.jetty.util.component.Dumpable.DumpableContainerNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
org.eclipse.jetty.util.component.LifeCycle.Listener -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.eclipse.jetty.util.resource.Resourceprotected booleanprotected List<PropertyUserStore.UserListener> protected intprotected org.eclipse.jetty.util.ScannerFields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
FAILED, STARTED, STARTING, STOPPED, STOPPINGFields inherited from interface org.eclipse.jetty.util.component.Dumpable
KEY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoStart()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 voiddoStop()org.eclipse.jetty.util.resource.ResourceGet the config (as a string)org.eclipse.jetty.util.resource.ResourceDeprecated, for removal: This API element is subject to removal in a future version.intGet the period in seconds to scan for property file changes, or 0 for no scanning.booleanDeprecated.protected voidLoad the user data from the property file.voidvoidpathChanged(Path path) voidpathRemoved(Path path) voidRegisters a listener to be notified of the contents of the property filevoidsetConfig(org.eclipse.jetty.util.resource.Resource config) Set the Config Path from a String reference to a filevoidsetHotReload(boolean enable) Deprecated.voidsetReloadInterval(int scanSeconds) Enable Hot Reload of the Property FiletoString()Methods inherited from class org.eclipse.jetty.security.UserStore
addUser, getRolePrincipals, getUserPrincipal, removeUserMethods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, destroy, dump, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, installBean, installBean, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeansMethods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stopMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.jetty.util.component.Container
getCachedBeans, getEventListenersMethods inherited from interface org.eclipse.jetty.util.component.Dumpable
dumpSelfMethods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpableMethods inherited from interface org.eclipse.jetty.util.Scanner.DiscreteListener
fileAdded, fileChanged, fileRemoved
-
Field Details
-
_configResource
protected org.eclipse.jetty.util.resource.Resource _configResource -
_scanner
protected org.eclipse.jetty.util.Scanner _scanner -
_reloadInterval
protected int _reloadInterval -
_firstLoad
protected boolean _firstLoad -
_listeners
-
-
Constructor Details
-
PropertyUserStore
public PropertyUserStore()
-
-
Method Details
-
getConfig
public org.eclipse.jetty.util.resource.Resource getConfig()Get the config (as a string)- Returns:
- the config path as a string
-
setConfig
public void setConfig(org.eclipse.jetty.util.resource.Resource config) Set the Config Path from a String reference to a file- Parameters:
config- the config file TODO: reintroduce setConfig(String) and internal ResourceFactory usage
-
getConfigResource
Deprecated, for removal: This API element is subject to removal in a future version.- Returns:
- the resource associated with the configured properties file, creating it if necessary
-
isHotReload
Deprecated.Is hot reload enabled on this user store- Returns:
- true if hot reload was enabled before startup
-
setHotReload
Deprecated.Enable Hot Reload of the Property File- Parameters:
enable- true to enable to a 1 second scan, false to disable
-
setReloadInterval
public void setReloadInterval(int scanSeconds) Enable Hot Reload of the Property File- Parameters:
scanSeconds- the period in seconds to scan for property file changes, or 0 for no scanning
-
getReloadInterval
public int getReloadInterval()Get the period in seconds to scan for property file changes, or 0 for no scanning.- Returns:
- the period in seconds to scan for property file changes, or 0 for no scanning
-
toString
-
loadUsers
Load the user data from the property file.- Throws:
IOException- If the users cannot be loaded
-
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. Otherwise the users will be loaded and there will be no active monitoring thread so changes will not be detected.- Overrides:
doStartin classorg.eclipse.jetty.util.component.ContainerLifeCycle- Throws:
Exception
-
pathChanged
-
pathAdded
-
pathRemoved
-
doStop
-
registerUserListener
Registers a listener to be notified of the contents of the property file- Parameters:
listener- the user listener
-
getReloadInterval()