Introduction
FlexibleJdbcRealm is a glassfish security realm and is deployed as
an additional jar of the glassfish runtime.
Configure the datasource
To start off, a datasource must be configured for accessing the
database with user and group information.
Installation of the Flexible Jdbc Realm
- Copy the FlexibleJdbcRealm jar to the glassfish lib directory.
Configure glassfish with the realm definition
-
Add mapping of the security realm to the flexible JDBC realm login module to the
login.conf of the glassfish domain you are using. For example:
PhotoXChangeRealm {
org.wamblee.glassfish.auth.FlexibleJdbcLoginModule required;
};
-
Configure the security realm in glassfish.
- In admin console, go to Configuration/Security/Realms.
- Add a new realm and use the class name
org.wamblee.glassfish.auth.FlexibleJdbcRealm as the realm class.
- Configure the realm as follows:
- jaas.context: The name of the realm as in login.conf and web.xml
- sql.password: The sql prepared statement that returns the encoded
password for a given user. The username is the single
parameter of the realm.
- sql.groups: The sql prepared statement which returns the groups
based on the username.
- datasource.jndi: The jndi name of the datasource.
- password.encoding: The encoding of the password.
The following encodings are supported:
- PLAIN: For no encoding
- MD5HEX: For MD5 Hex encoding
- assign-groups: Optional parameter with a comma-separated list of
groups that any authenticated user is assigned to.
Configure the application with a realm definition
- Add realm definition to web.xml login-config element (realm-name), For
example:
<login-config>
<auth-method>FORM</auth-method>
<realm-name>PhotoXChangeRealm</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/loginError.jsp</form-error-page>
</form-login-config>
</login-config>
Note:
In glassfish V2 b58, <role-name>*</role-name> does not work and you
should use the assign-groups property to assign any authenticated user
to a specific group. That specific group should be used to represent
any authenticated user instead of using <role-name>*</role-name>.