Class BasicAuthenticationServiceImpl
- java.lang.Object
-
- org.apache.derby.impl.jdbc.authentication.AuthenticationServiceBase
-
- org.apache.derby.impl.jdbc.authentication.BasicAuthenticationServiceImpl
-
- All Implemented Interfaces:
UserAuthenticator
,AuthenticationService
,ModuleControl
,ModuleSupportable
,PropertySetCallback
public final class BasicAuthenticationServiceImpl extends AuthenticationServiceBase implements UserAuthenticator
This authentication service is the basic Derby user authentication level support. It is activated upon setting derby.authentication.provider database or system property to 'BUILTIN'.It instantiates and calls the basic User authentication scheme at runtime.
In 2.0, users can now be defined as database properties. If derby.database.propertiesOnly is set to true, then in this case, only users defined as database properties for the current database will be considered.
-
-
Field Summary
-
Fields inherited from class org.apache.derby.impl.jdbc.authentication.AuthenticationServiceBase
authenticationScheme, AuthenticationTrace, SECMEC_USRSSBPWD
-
Fields inherited from interface org.apache.derby.iapi.jdbc.AuthenticationService
MODULE
-
-
Constructor Summary
Constructors Constructor Description BasicAuthenticationServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
authenticateUser(java.lang.String userName, java.lang.String userPassword, java.lang.String databaseName, java.util.Properties info)
Authenticate the passed-in user's credentials.void
boot(boolean create, java.util.Properties properties)
Start this module.boolean
canSupport(java.util.Properties properties)
Check if we should activate this authentication service.private java.lang.String
hashPasswordUsingStoredAlgorithm(java.lang.String user, java.lang.String password, java.lang.String storedPassword)
Hash a password using the same algorithm as we used to generate the stored password token.-
Methods inherited from class org.apache.derby.impl.jdbc.authentication.AuthenticationServiceBase
apply, authenticate, getDatabaseProperties, getDatabaseProperty, getProperty, getServiceModule, getServiceName, getSystemCredentialsDatabaseName, getSystemProperty, getTransaction, hashPasswordSHA1Scheme, hashUsingDefaultAlgorithm, init, map, parsePasswordLifetime, parsePasswordThreshold, requireAuthentication, setAuthenticationService, stop, substitutePassword, validate
-
-
-
-
Method Detail
-
canSupport
public boolean canSupport(java.util.Properties properties)
Check if we should activate this authentication service.- Specified by:
canSupport
in interfaceModuleSupportable
- Returns:
- true if this instance can be used, false otherwise.
-
boot
public void boot(boolean create, java.util.Properties properties) throws StandardException
Description copied from class:AuthenticationServiceBase
Start this module. In this case, nothing needs to be done.- Specified by:
boot
in interfaceModuleControl
- Overrides:
boot
in classAuthenticationServiceBase
- Throws:
StandardException
- upon failure to load/boot the expected authentication service.- See Also:
ModuleControl.boot(boolean, java.util.Properties)
-
authenticateUser
public boolean authenticateUser(java.lang.String userName, java.lang.String userPassword, java.lang.String databaseName, java.util.Properties info) throws java.sql.SQLException
Authenticate the passed-in user's credentials.- Specified by:
authenticateUser
in interfaceUserAuthenticator
- Parameters:
userName
- The user's name used to connect to JBMS systemuserPassword
- The user's password used to connect to JBMS systemdatabaseName
- The database which the user wants to connect to.info
- Additional jdbc connection info.- Returns:
- false if the connection request should be denied, true if the connection request should proceed. If false is returned the connection attempt will receive a SQLException with SQL State 08004.
- Throws:
java.sql.SQLException
- An exception processing the request, connection request will be denied. The SQL exception will be returned to the connection attempt.
-
hashPasswordUsingStoredAlgorithm
private java.lang.String hashPasswordUsingStoredAlgorithm(java.lang.String user, java.lang.String password, java.lang.String storedPassword) throws StandardException
Hash a password using the same algorithm as we used to generate the stored password token.- Parameters:
user
- the user whose password to hashpassword
- the plaintext passwordstoredPassword
- the password token that's stored in the database- Returns:
- a digest of the password created the same way as the stored password
- Throws:
StandardException
- if the password cannot be hashed with the requested algorithm
-
-