public interface UserAuthenticator
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 db.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.
java.lang.String authenticateUser(java.lang.String userName, java.lang.String userPassword, java.lang.String databaseName, java.util.Properties info) throws java.sql.SQLException
jdbc:splice:testdb;user=Fred;password=ScT7dmM2then the userName will be Fred and within the Derby user authorization system, Fred becomes a case-insensitive authorization identifier and is known as FRED
jdbc:splice:testdb;user="Fred";password=ScT7dmM2then the userName will be "Fred" and within the Derby user authorization system, Fred becomes a case-sensitive authorization identifier and is known as Fred
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.
java.sql.SQLException- An exception processing the request, connection request will be denied. The SQL exception will be returned to the connection attempt.