The Java Database Connectivity (JDBC) authentication module allows Access Manager to authenticate users through any Structured Query Language (SQL) databases that provide JDBC-enabled drivers. The connection to the SQL database can be either directly through a JDBC driver or through a JNDI connection pool. The JDBC attributes are realm attributes. The attributes are:
Specifies the connection type to the SQL database, using either a JNDI (Java Naming and Directory Interface) connection pool or JDBC driver. The options are:
Connection pool is retrieved via JDNI
Non-persistent JDBC connection
The JNDI connection pool utilizes the configuration from the underlying web container.
If JNDI is selected in Connection Type, this field specifies the connection pool name. Because JDBC authentication uses the JNDI connection pool provided by the web container, the setup of JNDI connection pool may not be consistent among other web containers. See the Access Manager Administration Guide for examples
If JDBC is selected in Connection Type, this field specifies the JDBC driver provided by the SQL database. For example, com.mysql.jdbc.Driver.
Specifies the database URL if JDBC is select in Connection Type. For example, the URL for mySQL is jdbc.mysql://hostname:port/databaseName.
Specifies the user name from whom the database connection is made for the JDBC connection.
Defines the password for the user specified in User to Connect to Database.
Confirm the password.
Specifies the password column name in the SQL database.
Specifies the SQL statement that retrieves the password of the user that is logging in. For example:
select Password from Employees where USERNAME = ?
Specifies the class name that transforms the password retrieved from the database, to the format of the user input, for password comparison. This class must implement the JDBCPasswordSyntaxTransform interface.
The authentication level is set separately for each method of authentication. The value indicates how much to trust an authentication mechanism. Once a user has authenticated, this value is stored in the SSO token for the session. When the SSO token is presented to an application the user wants to access, the application uses the stored value to determine whether the level is sufficient to grant the user access. If the authentication level stored in an SSO token does not meet the minimum value required, the application can prompt the user to authenticate again through a service with a higher authentication level. The default value is 0.
If no authentication level is specified, the SSO token stores the value specified in the Core Authentication attribute Default Authentication Level.
The following example shows how to set up a connection pool for Web Server and MySQL 4.0:
In the Web Server console, create a JDBC connection pool with the following attributes:
Server name of the mySQL server.
Port number on which mySQL server is running.
User name of the database password.
The password of the user.
The name of the database.
The jar file which contain the DataSource class and the JDBC Driver class mentioned in the following steps should be added to the application class path
Configure the JDBC Resources. In the Web Server console, create a JDBC resource with the following attributes:
Add the following lines to the sun-web.xml file of the application:
<resource-ref> <res-ref-name>jdbc/mySQL</res-ref-name> <jndi-name>jdbc/samplePool</jndi-name> </resource-ref>
Add the following lines to the web.xml file of the application:
<resource-ref> <description>mySQL Database</description> <res-ref-name>jdbc/mySQL</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
Once you have completed the settings the value for this attribute is becomes java:comp/env/jdbc/mySQL.