Sun Java System Application Server 9.1 管理指南

区域

领域也称为安全策略域安全域,是服务器定义和强制执行通用安全策略的范围。在实际应用中,区域是服务器存储用户和组信息的系统信息库。

Application Server 预先配置了三个领域:file(初始默认领域)、certificateadmin-realm。还可以设置 ldapJDBCsolaris 或自定义领域。应用程序可以在其部署描述符中指定要使用的区域。如果应用程序不指定领域,Application Server 将使用其默认领域。

file 领域中,服务器将用户凭证存储在本地名为 keyfile 的文件中。您可以使用管理控制台来管理 file 领域中的用户。

certificate 领域中,服务器将用户凭证存储在证书数据库中。使用 certificate 领域时,服务器结合使用证书和 HTTPS 协议来验证 Web 客户机。有关证书的更多信息,请参见证书和 SSL 简介

admin-realm 也是一个 FileRealm,它将管理员用户凭证存储在本地名为 admin-keyfile 的文件中。您可以使用管理控制台管理此领域中的用户,方法与管理 file 领域中的用户相同。

ldap 领域中,服务器将从轻量目录访问协议 (Lightweight Directory Access Protocol, LDAP) 服务器(例如 Sun Java System Directory Server)中获取用户凭证。LDAP 是一种协议,它使任何人都可以在网络(无论是公共 Internet 还是企业内联网)中查找组织、个人和其他资源(例如文件和设备)。有关管理 ldap 领域中的用户和组的信息,请参阅您的 LDAP 服务器文档。

JDBC 领域中,服务器将从数据库中获取用户凭证。Application Server 将使用数据库信息和配置文件中已启用的 JDBC 领域选项。

solaris 领域中,服务器将从 Solaris 操作系统中获取用户凭证。Solaris 9 OS 和更高版本支持此区域。有关管理 solaris 领域中的用户和组的信息,请参阅您的 Solaris 文档。

自定义区域是用户凭证的任何其他系统信息库,例如关系型数据库或第三方组件。有关更多信息,请参见管理控制台联机帮助。

Procedure为 Java EE 应用程序配置 JDBC 领域

Application Server 允许您在 JDBC 领域中而不是在连接池中指定用户的凭证。使用 JDBC 领域代替连接池可防止其他应用程序浏览用户凭证的数据库表。用户的凭证即该用户的名称和密码。


注 –

默认情况下,JDBC 领域中不支持以明文形式存储密码。正常情况下,不应以明文形式存储密码。


  1. 创建要在其中针对领域存储用户凭证的数据库表。

    如何创建数据库表取决于您所使用的数据库。

  2. 将用户凭证添加到在步骤 1 中创建的数据库表中。

    如何向数据库表添加用户凭证取决于您所使用的数据库。

  3. 创建 JDBC 领域。

    可使用管理控制台 GUI 来实现此目的。有关创建 JDBC 领域的说明,请参见管理控制台 GUI 的联机帮助。

  4. 将您在步骤 3 中创建的领域指定为应用程序的领域。

    要指定领域,请修改应用程序的相应部署描述符:

    • 对于企业归档 (Enterprise Archive, EAR) 文件中的企业应用程序,请修改 sun-application.xml 文件。

    • 对于 Web 应用程序归档 (Web Application Archive, WAR) 文件中的 Web 应用程序,请修改 web.xml 文件。

    • 对于 EJB JAR 文件中的企业 Bean,请修改 sun-ejb-jar.xml 文件。

    有关如何指定领域的更多信息,请参见《Sun Java System Application Server 9.1 Developer’s Guide》中的“How to Set a Realm for an Application or Module”

  5. 为领域中的用户指定安全性角色。

    要为用户指定安全性角色,请将 security-role-mapping 元素添加到您在步骤 4 中修改的部署描述符。

    以下示例说明了将安全性角色 Employee 指定给用户 Calvinsecurity-role-mapping 元素。

    <security-role-mapping>
        <role-name>Employee</role-name>
        <principal-name>Calvin</principal-name>
      </security-role-mapping>