-
public interface UserAuthenticator
The UserAuthenticator interface provides operations to authenticate a user's credentials in order to successfully connect to a database. Any user authentication schemes could be implemented using this interface and registered at start-up time.If an application requires its own authentication scheme, then it can implement this interface and register as the authentication scheme that Derby should call upon connection requests to the system. See the dcoumentation for the property derby.authentication.provider
A typical example would be to implement user authentication using LDAP, Sun NIS+, or even Windows User Domain, using this interface.
Note: Additional connection attributes can be specified on the database connection URL and/or Properties object on jdbc connection. Values for these attributes can be retrieved at runtime by the (specialized) authentication scheme to further help user authentication, if one needs additional info other than user, password, and database name.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
authenticateUser(String userName, String userPassword, String databaseName, Properties info)
Authenticate a user's credentials.
-
-
-
Method Detail
-
authenticateUser
boolean authenticateUser(String userName, String userPassword, String databaseName, Properties info) throws SQLException
Authenticate a user's credentials.
E.g. if connection url isjdbc:derby:testdb;user=Fred;password=ScT7dmM2
then the userName will be Fred and within the Derby user authorization system, Fred becomes a case-insensitive authorization identifier and is known as FRED
if connection url isjdbc:derby:testdb;user="Fred";password=ScT7dmM2
then the userName will be "Fred" and within the Derby user authorization system, Fred becomes a case-sensitive authorization identifier and is known as Fred- Parameters:
userName
- The user's name for the connection request. May be null. The user name is passed in as is from the connection request. Derby will pass in the user name that is set on connection request as is, without changing the casing and without removing the delimiter quotes if any.userPassword
- The user's password for the connection request. May be null.databaseName
- The database that the user wants to connect to. Will be null if this is system level authentication.info
- A Properties object that contains additional connection information, that can help to authenticate the user. It has properties of the 'info' object passed as part of DriverManager.getConnection() call and any attributes set on the JDBC URL.- 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:
SQLException
- An exception processing the request, connection request will be denied. The SQL exception will be returned to the connection attempt.
-
-