WEB开发网
开发学院软件开发Java 在 Apache Geronimo 中创建登录和注册系统,第 1 ... 阅读

在 Apache Geronimo 中创建登录和注册系统,第 1 部分: 使用 J2EE 声明式安全性和 Geronimo 内置的 Derby 数据库

 2010-04-19 00:00:00 来源:WEB开发网   
核心提示: 现在单击 Run SQL,在大的文本框下面应当出现以下文本,在 Apache Geronimo 中创建登录和注册系统,第 1 部分: 使用 J2EE 声明式安全性和 Geronimo 内置的 Derby 数据库(4),表示成功:Result:SQL command/s successful这就创

现在单击 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> 

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:Apache Geronimo 创建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接