org.apache.derby.authentication
Interface UserAuthenticator


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
 boolean authenticateUser(java.lang.String userName, java.lang.String userPassword, java.lang.String databaseName, java.util.Properties info)
          Authenticate a user's credentials.
 

Method Detail

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 a user's credentials.
E.g. if connection url is jdbc: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 is jdbc: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:
java.sql.SQLException - An exception processing the request, connection request will be denied. The SQL exception will be returned to the connection attempt.

Built on Wed 2007-08-01 06:53:39-0700, from revision 561794

Apache Derby 10.3 API Documentation - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.