Sun Java System Application Server 9.1 管理指南

区域

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

Application Server 预先配置了三个领域:file(初始默认领域)、certificate 和 admin-realm。还可以设置 ldap、JDBC、solaris 或自定义领域。应用程序可以在其部署描述符中指定要使用的区域。如果应用程序不指定领域,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 指定给用户 Calvin 的 security-role-mapping 元素。

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