在 Apache Geronimo 中创建登录和注册系统,第 1 部分: 使用 J2EE 声明式安全性和 Geronimo 内置的 Derby 数据库
2010-04-19 00:00:00 来源:WEB开发网现在单击 Run SQL。在大的文本框下面应当出现以下文本,表示成功:
Result:
SQL command/s successful
这就创建了两个表:
users 包含用户和口令信息。也可以包含其他各种个人信息,包括籍贯、习惯,等等。
groups_users 包含 J2EE 基于组的认证所需要的用户到组的映射。
现在已经用 Geronimo 控制台创建并初始化了用户和组表。下面定义应用程序的安全性。
定义安全性
客户对 J2EE 安全性非常关注,因为顾名思义,它是安全问题。不仅这样,而且 Geronimo 完全支持它并和它兼容。客户还坚信认证必须用数据库进行,以便日后新用户可以注册并立即登录。
虽然 “在 Apache Geronimo 中限制目录访问” 这篇文章中介绍的实现 J2EE 安全性的整体过程与本文中介绍的过程多多少少有些相同,但是使用 SQLLoginModule(而不是使用 FilePropertiesLoginModule)处理的内部机制很不同。具体来说,部署计划依赖于数据库和数据库驱动程序的 .jar 文件,这些文件可以协助连接到内置的 Derby 数据库。
用 Derby 配置安全性
应用程序需要一个安全性部署计划,指定从哪个源获得认证用户所需要的用户名和口令信息。应用程序的部署计划包含三个 GBean。请创建一个叫做 my-db-plan.xml 的文件,把它放在应用程序的 WEB-INF 目录,并像 清单 2 这样定义它。
清单 2. my-db-plan.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://geronimo.apache.org/xml/ns/deployment-1.0"
configId="com/ibm/geronimo/security/myDbPlan"
parentId="org/apache/geronimo/Security">
<dependency>
<uri>org.apache.derby/jars/db2jcc.jar</uri>
</dependency>
<dependency>
<uri>org.apache.derby/jars/db2jcc_license_c.jar</uri>
</dependency>
<dependency>
<uri>org.apache.derby/jars/derbynet-10.1.1.0.jar</uri>
</dependency>
<gbean name="my-sql-login"
class="org.apache.geronimo.security.jaas.LoginModuleGBean">
<attribute name="loginModuleClass">
org.apache.geronimo.security.realm.providers.SQLLoginModule
</attribute>
<attribute name="serverSide">true</attribute>
<attribute name="options">
jdbcUser=system
jdbcPassword=manager
jdbcURL=jdbc:derby:net://localhost:1527/SystemDatabase;
jdbcDriver=com.ibm.db2.jcc.DB2Driver
userSelect=select username, password from app.users
groupSelect=select groupname, username from
app.groups_users
</attribute>
<attribute name="loginDomainName">my-sql-realm</attribute>
</gbean>
<gbean name="my-sql-realm"
class="org.apache.geronimo.security.realm.GenericSecurityRealm">
<attribute name="realmName">my-sql-realm</attribute>
<reference name="LoginModuleConfiguration">
<name>my-sql-login</name>
</reference>
<reference name="ServerInfo">
<module>org/apache/geronimo/System</module>
<name>ServerInfo</name>
</reference>
<reference name="LoginService">
<module>org/apache/geronimo/Security</module>
<name>JaasLoginService</name>
</reference>
</gbean>
<gbean name="my-sql-login"
class="org.apache.geronimo.security.jaas.JaasLoginModuleUse">
<attribute name="controlFlag">REQUIRED</attribute>
<reference name="LoginModule">
<name>my-sql-login</name>
</reference>
</gbean>
</configuration>
- ››apache设置域名绑定 以及绑定不起作用的排查
- ››apache rewrite将指定URL转向指定的几个服务器
- ››创建SQL2005自动备份,定期删除的维护计划
- ››apache配置文件httpd.comf部分参数说明
- ››Apache+Mysql+PHP+phpMyAdmin+Mac OS X 10.7 Lion...
- ››创建动态表单 javascript
- ››apache+tomcat负载均衡_项目实例
- ››apache mysql php 源码编译使用
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››Apache中改变php.ini的路径
- ››Apache2.2与Tomcat6整合及虚拟主机配置
- ››Apache+php+mysql在windows下的安装与配置图解
更多精彩
赞助商链接