当您利用配置程序 (config-commda) 安装和配置 Delegated Administrator 之后,可以根据需要自定义您的配置。本章提供了有关如何自定义 Delegated Administrator 某些功能的示例。
开始自定义配置之前,您应该对所有现有 Delegated Administrator 配置文件进行备份。
此外,在升级 Delegated Administrator 时也可能会丢失自定义配置数据。因此,在升级 Delegated Administrator 或重新运行 Delegated Administrator 配置程序之前,您也应该保存自定义配置。有关详细信息,请参见保留现有配置。
本章介绍了以下主题:
如果要使用服务范围默认值来设置首选邮件主机和首选邮件存储,可以执行本节中所述的任务。
如果需要从控制台(具体来讲,是从“新建组织向导和组织属性”屏幕)删除“首选邮件主机”字段,可以执行以下步骤:
编辑 Security.properties 文件。此步骤将在本节中进行介绍。
启用 MailHostStorePlugin。此步骤将在下一节为 Delegated Administrator 添加插件中进行介绍。
Security.properties 文件允许您针对所有职责或个别职责来自定义 Delegated Administrator 控制台。
Security.properties 文件位于目录 da_base/da/WEB-INF/classes/com/sun/comm/da/resources 下
要从控制台删除首选邮件主机,请将以下所示的几行添加到 Security.properties 文件中:
# Remove Preferred Mail Host from UI *.NewOrganizationPage6.PreferredMailHostProperty=INVISIBLE *.NewOrganizationSummaryPage.PreferredMailHostSummaryProperty=INVISIBLE *.OrgProperties.MailHostName=INVISIBLE *.OrgProperties.MailHostNameText=INVISIBLE *.OrgProperties.MailHostValue=INVISIBLE |
注意:您可以向此文件中添加行以进行自定义,但是不能编辑已有的行。编辑现有的行会导致控制台中抛出异常。
文件中的属性的格式为:安全元素名=权限
安全元素名的格式为:职责名.容器视图名.控制台元素名
安全元素指定了要定义其权限的控制台元素和职责。如果不知道元素名称,请查看页来源,以使该页上的名称与您所需的控制台元素相匹配。
页面上的名称是全限定名。您只需挑选名称的后两个元素,其格式为容器视图名.控制台元素名。
Delegated Administrator 的有效职责名如下:
"ProviderAdminRole" (SPA) 有关此职责的信息,请参见附录 A,服务提供商管理员和服务提供商组织。
"OrganizationAdminRole" (OA)
"Top-levelAdminRole" (TLA)
"*"(将权限应用于所有职责,除非对于某一特定职责,该权限被忽略)
权限必须是以下字符串之一:
EDITABLE–表示该安全元素可编辑。
NONEDITABLE–表示该安全元素是只读的。
VISIBLE–表示该安全元素可见并且是只读的。
INVISIBLE–表示该安全元素不可见。
您可以自定义 Delegated Administrator 以支持以下插件:
默认情况下禁用此插件。如果在创建了业务组织后没有提供 preferredmailhost,将会出现异常。如果禁用此插件,则仅当缺少相应属性时才会使用平面文件(本节后面对此进行了说明)中的值。
可使用域值返回预期的 DSN 地址。默认实现将会返回字符串 MAILER-DAEMON@<domain>。
可生成惟一 ID 字符串。默认实现将会生成 GUID 来返回到调用方。
要启用这些插件,请编辑 commcli servlet resource.properties 文件,该文件位于以下目录:
da_base/data/WEB-INF/classes/sun/comm/cli/server/servlet/ resource.properties |
(默认情况下,da_base 为 /opt/SUNWcomm。)
这些插件位于 resource.properties 文件的一节中,其标题如下:
######################## # Plugin Configuration # ########################## |
每个插件均带有 "plugin" 后缀。当前的列表如下所示:
jdapi-mailhoststoreplugin=disabled jdapi-mailhoststorepluginclass=sun.comm.cli.server.util.MailHostStorePlugin jdapi-mailhoststorepluginfile=/tmp/mailhostmailstore jdapi-maildomainreportaddressplugin=enabled jdapi-maildomainreportaddresspluginclass=sun.comm.cli.server. util.MailDomainReportAddressPlugin jdapi-uidautogenerationplugin=disabled jdapi-uidautogenerationpluginclass=sun.comm.cli.server.util.UidPlugin |
每个插件至少具有两行,其格式如下:
jdapi-<name>plugin= "enabled" | "disabled"
jdapi-<name>pluginclass=sun.comm.cli.server.util/ <java class name> |
要启用插件,请将 "disabled" 改为 "enabled"。
本节中列出的所有插件的插件类均已提供。这些类位于以下目录:
da_base/data/WEB-INF/classes/sun/comm/cli/server/util
您不需要对这些类进行任何操作。
MailHostStorePlugin 需要另外一个平面文件,该文件将包含在插件的第三行中。插件将读取该平面文件中的值并使用该值来设置各个属性值。如果启用了此插件,则该文件必须存在,否则将发生错误。
jdapi-mailhoststoreplugin o jdapi-mailhoststoreplugininf=<full file name> o file has one line o value is that for : o preferredmailhost attribute o preferredmailmessagestore attribute o form o <mailhost>:<mailpartition> |
您可以启用 Delegated Administrator 来向新的用户、组、资源或组织的 LDAP 条目中添加自定义类。要完成此任务,可自定义由 Access Manager 安装在目录中的相应的对象创建模板。
例如,BasicUser 创建模板决定了在创建新用户时要向用户条目中添加哪些对象类和属性。您可以利用自定义对象类来更新 BasicUser 创建模板。此后,该自定义对象类会与标准对象类一起添加到每个新的用户条目中。
以下过程说明了如何自定义 BasicUser 模板。您可以按照相同的过程来自定义 BasicGroup、BasicResource 和 BasicOrganization 创建模板。
请确保您在目录模式下定义了自定义对象类。
查找以下目录条目:
ou=basicuser,ou=creationtemplates,ou=templates,ou=default, ou=globalconfig,ou=1.0,ou=dai,ou=services, o=$Root_Suffix |
其中 $Root_Suffix 是您的目录的根后缀。
将以下 attribute:value 添加到该条目中:
sunkeyValue:required=objectClass=$Your_Custom_Objectclass. |
其中 $Your_Custom_Objectclass 是您的自定义的对象类。
当您运行 Delegated Administrator 配置程序 ( config-commda) 时,用来登录到 Delegated Administrator 的值被设置为 uid。
例如,如果您打算作为 TLA 登录,而 TLA 的 uid 为 john.doe,那么就要使用 john.doe 登录到 Delegated Administrator。
您可以自定义 Delegated Administrator 以便能够使用其他值作为用户登录帐户。例如,可以添加邮件地址 (mail)。
config-commda 程序可利用 resource.properties 文件中的 loginAuth-idAttr 属性将此值设置为 uid,如以下示例所示:
loginAuth-searchBase=<$rootSuffix> servicepackage-cosdefbasedn = <$rootSuffix> loginAuth-idAttr-1=uid |
其中 <$rootSuffix> 是您的目录的根后缀。
resource.properties 文件所在的位置为
da_base/data/WEB-INF/classes/sun/comm/cli/server/servlet/ resource.properties |
通过编辑 resource.properties 文件,您可以设置其他值来作为用户登录帐户。
例如,要能够使用邮件地址(例如 john.doe@sesta.com)来登录,您可以向 resource.properties 文件中添加以下行:
loginAuth-searchBase=<$rootSuffix> servicepackage-cosdefbasedn = <$rootSuffix> loginAuth-idAttr-1=uid loginAuth-idAttr-2=mail |
其中 <$rootSuffix> 是您的目录的根后缀。
请注意,每个新的 loginAuth-idAttr 属性值必须是递增的。在本例中,添加的是第二个值,因此应向 loginAuth-idAttr 中添加 -2。
可以添加多个 loginAuth-idAttr 属性实例:
loginAuth-idAttr-1=uid loginAuth-idAttr-2=mail | loginAuth-idAttr-n=<登录值> |
默认情况下,Delegated Administrator 允许您创建新用户而不为该用户指派服务包。
您可以更改默认设置,以便要求必须为每个新用户至少指派一个服务包。
在一个文本编辑器中打开 daconfig.properties 文件。
daconfig.properties 文件默认情况下位于以下目录:
/var/opt/SUNWcomm/da/WEB-INF/classes/com/sun/ comm/da/resources/daconfig.properties |
将 user.atleastOneServicePackage 属性值从 false 改为 true。
默认情况下,此值为 false。
例如
user.atleastOneServicePackage=true
将此值设置为 true 之后,当使用 Delegated Administrator 控制台中的“创建新用户”向导时,就必须为成功创建的新用户至少指派一个服务包。
您可以通过添加新的 Calendar Server 时区来自定义 Delegated Administrator。这样,Delegated Administrator 就可以使用该新时区来置备组织、用户、组和资源。
添加了新时区后,您可以将其设置为新创建的用户的默认时区。
在 Calendar Server 中添加新时区。
要完成此步骤,必须编辑 timezones.ics 文件和其他 Calendar Server 文件。有关说明,请参见本章中的“添加新时区”和 Sun Java System Calendar Server 管理指南中的“管理 Calendar Server 的时区”。
备份 UserCalendarService.xml 和 DomainCalendarService.xml 文件以及 Resources.properties 文件。
xml 文件默认情况下位于以下目录:
/opt/SUNWcomm/lib/services
Resources.properties 文件默认情况下位于以下目录:
/var/opt/SUNWcomm/da/WEB-INF/classes/com/sun/ \ comm/da/resources |
此外,请确保在升级 Delegated Administrator 或重新运行 Delegated Administrator 配置程序之前保存您的自定义配置数据。
编辑 UserCalendarService.xml 和 DomainCalendarService.xml 文件以便在 Delegated Administrator 中添加新时区。
这些 xml 文件默认情况下位于以下目录:
/opt/SUNWcomm/lib/services
在 UserCalendarService.xml 和 DomainCalendarService.xml 文件中,都找到以下条目标题:
<AttributeSchema name="icstimezone" type="single choice" syntax="string" any="optional|adminDisplay"> <ChoiceValues> |
将新时区值添加到 <ChoiceValues> 列表中。
运行 Access Manager amadmin 实用程序以删除当前的服务并添加更新的服务。
对 UserCalendarService.xml 和 DomainCalendarService.xml 文件都运行以下 amadmin 命令:
./amadmin -u <admin> -w <password> -r DomainCalendarService |
./amadmin -u <admin> -w <password> -s $PATH/DomainCalendarService.xml |
如果您还打算将新时区设置为默认时区,则可以在执行上述两个任务之后运行这些 amadmin 命令。(以下任务说明了如何更改默认时区。)
重新启动您的 Web 容器以使所做的更改生效。
在 UserCalendarService.xml 和 DomainCalendarService.xml 文件中,编辑以下值:
<DefaultValues> <Value>America/Denver</Value> </DefaultValues> |
可以在 xml 文件中的以下条目下找到 <DefaultValues>:
<AttributeSchema name="icstimezone" |
运行 Access Manager amadmin 实用程序以删除当前的服务并添加更新的服务。
对 UserCalendarService.xml 和 DomainCalendarService.xml 文件都运行以下 amadmin 命令:
./amadmin -u <admin> -w <password> -r DomainCalendarService |
./amadmin -u <admin> -w <password> -s $PATH/DomainCalendarService.xml |
重新启动您的 Web 容器以使所做的更改生效。
编辑 Resources.properties 文件,该文件位于 Delegated Administrator 数据目录下。
Resources.properties 文件默认情况下位于以下目录:
/var/opt/SUNWcomm/da/WEB-INF/classes/com/sun/ \ comm/da/resources |
要编辑 Resources.properties,请搜索 rsrc.Timezone 属性并将新时区添加到相应的列表中。
编辑完此文件之后,新时区将会出现在 Delegated Administrator 控制台内的相应列表框中。