Excerpt |
---|
This article shows you how to create a security realm using Geronimo Eclipse Plugin(GEP) during development. |
GEP provides an easy-using wizard for different types of security realm configuration such as properties file realm, SQL realm and LDAP realm.
In this article, we use a sample Dynamic Web Project and SQL realm for demonstration. You can of course choose the project or realm type as you needed.
Creating a SQL realm
- Double-click the
geronimo-web.xml
file under /META-INF directory of your application to open it in Geronimo Deployment Plan Editor, you will see general information page of the application.
- Select Security tab, and then open Security Realm section to display the security realms that are defined.
- Add - start a wizard for security realm creation.
- Remove - remove an existing security realm.
- Edit - reconfigure an existing security realm.
- Click Add to start a security realm wizard and fill in required fields. In this example, we select SQL Realm.
- Realm Name is used to specify the name of the security realm that will be used for user authentication for the application.
- Realm Type is the type of login module.
- Click Next to input SQL statements for user and group verification.
- Select SQL : input SQL statements to retrieve user and group information from database .
- Digest Configuration : specify digesting algorithm and encoding configuration for the user's password.
- Input a database pool name or JDBC URL to connect to the database where the credentials are stored.
- Click Finish to complete the wizard, and you will see that the realm and corresponding LoginModule class are listed in the Security Realm section.
- In the tool-bar, click Finish to save the changes.
Now you have created a new security realm for a simple Web application. You can click the Source tab to review the sample deployment plan.
Code Block |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<web:web-app xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0" xmlns:client="http://geronimo.apache.org/xml/ns/j2ee/application-client-2.0" xmlns:conn="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2"
xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2" xmlns:ejb="http://openejb.apache.org/xml/ns/openejb-jar-2.2" xmlns:log="http://geronimo.apache.org/xml/ns/loginconfig-2.0"
xmlns:name="http://geronimo.apache.org/xml/ns/naming-1.2" xmlns:pers="http://java.sun.com/xml/ns/persistence" xmlns:pkgen="http://openejb.apache.org/xml/ns/pkgen-2.1"
xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0" xmlns:web="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1">
<dep:environment>
<dep:moduleId>
<dep:groupId>default</dep:groupId>
<dep:artifactId>TestWAR</dep:artifactId>
<dep:version>1.0</dep:version>
<dep:type>car</dep:type>
</dep:moduleId>
<dep:dependencies>
<dep:dependency>
<dep:groupId>org.apache.geronimo.framework</dep:groupId>
<dep:artifactId>j2ee-security</dep:artifactId>
<dep:type>car</dep:type>
</dep:dependency>
</dep:dependencies>
</dep:environment>
<web:context-root>/TestWAR</web:context-root>
<dep:gbean class="org.apache.geronimo.security.realm.GenericSecurityRealm" name="testSQLRealm">
<dep:attribute name="realmName">testSQLRealm</dep:attribute>
<dep:reference name="ServerInfo">
<dep:name>ServerInfo</dep:name>
</dep:reference>
<dep:xml-reference name="LoginModuleConfiguration">
<log:loginConfig>
<log:login-module control-flag="REQUIRED" wrap-principals="false">
<log:login-domain-name>testSQLRealm</log:login-domain-name>
<log:login-module-class>org.apache.geronimo.security.realm.providers.SQLLoginModule</log:login-module-class>
<log:option name="dataSourceName">SecurityDatabasePool</log:option>
<log:option name="userSelect">select username, password from users where username=?</log:option>
<log:option name="groupSelect">select username, groupname from groups where username=?</log:option>
<log:option name="digest"/>
<log:option name="encoding"/>
</log:login-module>
</log:loginConfig>
</dep:xml-reference>
</dep:gbean>
</web:web-app>
|