Package org.eclipse.jetty.security
Class PropertyUserStore
- java.lang.Object
-
- org.eclipse.jetty.util.component.AbstractLifeCycle
-
- org.eclipse.jetty.security.UserStore
-
- org.eclipse.jetty.security.PropertyUserStore
-
- All Implemented Interfaces:
java.util.EventListener
,LifeCycle
,PathWatcher.Listener
public class PropertyUserStore extends UserStore implements 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
AbstractLifeCycle.AbstractLifeCycleListener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
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 PathWatcher
_pathWatcher
-
Constructor Summary
Constructors Constructor Description PropertyUserStore()
-
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 ConfigPath
reference.Resource
getConfigResource()
boolean
isHotReload()
Is hot reload enabled on this user storeprotected void
loadUsers()
void
onPathWatchEvent(PathWatcher.PathWatchEvent event)
void
registerUserListener(PropertyUserStore.UserListener listener)
Registers a listener to be notified of the contents of the property filevoid
setConfig(java.lang.String config)
Set the Config Path from a String reference to a filevoid
setConfigFile(java.io.File configFile)
Set the Config Path from aFile
referencevoid
setConfigPath(java.io.File configFile)
Deprecated.void
setConfigPath(java.lang.String configFile)
Deprecated.void
setConfigPath(java.nio.file.Path configPath)
Set the Config Pathvoid
setHotReload(boolean enable)
Enable Hot Reload of the Property Filejava.lang.String
toString()
-
Methods inherited from class org.eclipse.jetty.security.UserStore
addUser, getIdentityService, getKnownUserIdentities, getUserIdentity, removeUser
-
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, setStopTimeout, start, stop
-
-
-
-
Field Detail
-
_configPath
protected java.nio.file.Path _configPath
-
_pathWatcher
protected PathWatcher _pathWatcher
-
_hotReload
protected boolean _hotReload
-
_firstLoad
protected boolean _firstLoad
-
_listeners
protected java.util.List<PropertyUserStore.UserListener> _listeners
-
-
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 ConfigPath
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 filejar:file:
-
setConfigPath
@Deprecated public void setConfigPath(java.io.File configFile)
Deprecated.Set the Config Path from aFile
reference- Parameters:
configFile
- the config file
-
setConfigFile
public void setConfigFile(java.io.File configFile)
Set the Config Path from aFile
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 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 classAbstractLifeCycle
-
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 classAbstractLifeCycle
- Throws:
java.lang.Exception
-
onPathWatchEvent
public void onPathWatchEvent(PathWatcher.PathWatchEvent event)
- Specified by:
onPathWatchEvent
in interfacePathWatcher.Listener
-
doStop
protected void doStop() throws java.lang.Exception
- Overrides:
doStop
in classAbstractLifeCycle
- 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
-
-