Package org.eclipse.jetty.security
Class JDBCLoginService
java.lang.Object
org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.ContainerLifeCycle
org.eclipse.jetty.security.AbstractLoginService
org.eclipse.jetty.security.JDBCLoginService
- All Implemented Interfaces:
LoginService
,Container
,Destroyable
,Dumpable
,Dumpable.DumpableContainer
,LifeCycle
HashMapped User Realm with JDBC as data source.
The
AbstractLoginService.login(String, Object, ServletRequest)
method checks the inherited Map for the user. If the user is not
found, it will fetch details from the database and populate the inherited
Map. It then calls the superclass AbstractLoginService.login(String, Object, ServletRequest)
method to perform the actual
authentication. Periodically (controlled by configuration parameter),
internal hashes are cleared. Caching can be disabled by setting cache refresh
interval to zero. Uses one database connection that is initialized at
startup. Reconnect on failures.
An example properties file for configuration is in
${jetty.home}/etc/jdbcRealm.properties
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.eclipse.jetty.security.AbstractLoginService
AbstractLoginService.RolePrincipal, AbstractLoginService.UserPrincipal
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.Container
Container.InheritedListener, Container.Listener
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
Dumpable.DumpableContainer
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
LifeCycle.Listener
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Connection
protected String
protected String
protected String
protected String
protected String
protected String
protected String
protected String
protected String
protected String
private static final Logger
Fields inherited from class org.eclipse.jetty.security.AbstractLoginService
_fullValidate, _identityService, _name
-
Constructor Summary
ConstructorsConstructorDescriptionJDBCLoginService
(String name) JDBCLoginService
(String name, String config) JDBCLoginService
(String name, IdentityService identityService, String config) -
Method Summary
Modifier and TypeMethodDescriptionprivate void
Close an existing connectionvoid
(re)Connect to database with parameters setup by loadConfig()protected void
doStart()
Starts the managed lifecycle beans in the order they were added.protected void
doStop()
Stops the managed lifecycle beans in the reverse order they were added.String[]
loadUserInfo
(String username) void
Load JDBC connection configuration from properties file.Methods inherited from class org.eclipse.jetty.security.AbstractLoginService
getIdentityService, getName, isFullValidate, login, logout, setFullValidate, setIdentityService, setName, toString, validate
Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, destroy, dump, dump, dump, dump, dump, dumpBeans, dumpObject, dumpObjects, dumpStdErr, dumpThis, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, setStopTimeout, start, stop, unmanage, updateBean, updateBean, updateBeans
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpable
-
Field Details
-
LOG
-
_config
-
_jdbcDriver
-
_url
-
_userName
-
_password
-
_userTableKey
-
_userTablePasswordField
-
_roleTableRoleField
-
_con
-
_userSql
-
_roleSql
-
-
Constructor Details
-
JDBCLoginService
- Throws:
IOException
-
JDBCLoginService
- Throws:
IOException
-
JDBCLoginService
- Throws:
IOException
-
JDBCLoginService
public JDBCLoginService(String name, IdentityService identityService, String config) throws IOException - Throws:
IOException
-
-
Method Details
-
doStart
Description copied from class:ContainerLifeCycle
Starts the managed lifecycle beans in the order they were added.- Overrides:
doStart
in classContainerLifeCycle
- Throws:
Exception
-
getConfig
-
setConfig
Load JDBC connection configuration from properties file.- Parameters:
config
- Filename or url of user properties file.
-
connectDatabase
public void connectDatabase()(re)Connect to database with parameters setup by loadConfig() -
loadUserInfo
- Specified by:
loadUserInfo
in classAbstractLoginService
-
loadRoleInfo
- Specified by:
loadRoleInfo
in classAbstractLoginService
-
doStop
Description copied from class:ContainerLifeCycle
Stops the managed lifecycle beans in the reverse order they were added.- Overrides:
doStop
in classContainerLifeCycle
- Throws:
Exception
- See Also:
-
closeConnection
private void closeConnection()Close an existing connection
-