Sun ONE logo      上一页      目录      索引      下一页     

Sun ONE Portal Server 6.2 管理员指南

第 5 章
管理显示配置文件

本章介绍 Sun™ ONE Portal Server display profile组件及其管理方法。

本章包含以下部分:


显示配置文件概述

本部分介绍 Sun ONE Portal Server 的显示配置文件组件。

display profile通过定义以下三项创建桌面的显示配置:

“Portal 桌面”在 Sun ONE Directory Server Access Management Edition 服务上实现显示配置文件数据存储机制,以存储内容提供者和频道数据。此外,还为频道和提供者设置属性。

用户的display profile是一系列描述容器管理和频道属性的 XML 文档。(一个display profile文档相当于一个 XML 文档。)display profile文档作为单个属性完整存储在 Sun ONE Identity Server 服务层。即,display profile文档是驻留在 Sun ONE Directory Server 的某个实例中的 LDAP 属性。

要更改display profile属性值,提供者应使用提供者 API (PAPI) 来获得和设置值。当为display profile设置了频道值时,PAPI 内部实现使用 Sun ONE Identity Server SDK 在 Sun ONE Identity Server 桌面服务属性中设置display profile文档。


警告

虽然可以编辑,但不应使用 Sun ONE Identity Server SDK 编辑display profile。


显示配置文件和管理控制台

可以通过 Sun ONE Identity Server 管理控制台和 dpadmin 命令编辑显示配置文件和其它“Portal 桌面”服务数据。编辑display profile时,可添加、修改和删除提供者、容器和频道,并可编辑属性。“上载 XML”和“下载 XML”链接允许上载和下载显示配置文件文档。此外,Sun ONE Identity Server 管理控制台还在“Portal 桌面”属性页上提供“频道和容器管理”链接,以添加频道和容器及编辑现有属性。使用“频道和容器管理”链接能够在创建新频道或容器时定义属性。还可以使用“频道和容器管理”链接添加、修改和删除频道和容器。有关详细信息,请参阅管理显示配置文件


注意

由于“频道和容器管理”链接只允许访问显示配置文件的一部分,因而可以看出,只有委托管理员才能使用它。有关如何配置委托管理员的详细信息,请参阅第 3 章,“配置委托管理”


显示配置文件文档结构

本部分介绍display profile文档的整体结构。display profile文档的底层数据格式为 XML。有关显示配置文件 DTD 语法的信息,请参阅附录 B,“XML 参考”

display profile格式通过定义提供者和频道对象及它们的属性来建立桌面的显示配置。display profile存储在 Sun ONE Directory Server 中的 isp 级(或最顶级目录节点)、组织级、角色级或用户级。运行时,将目录树中用户的特定配置文件中的所有display profile文档“合并”,结果即是用户的display profile,此用户的特定display profile对象的值由display profile的“合并”语义决定。

display profile对象直接映射到定义它们的 XML 标记。例如,<Channel name> </Channel> XML 标记定义频道对象。

一般情况下,display profile的文档结构类似于如下所示的结构:

<DisplayProfile>

  <Properties>...全局属性...</Properties>

  <Channels>...频道定义...</Channels>

  <Providers>...提供者定义...</Providers>

</DisplayProfile>

<Properties><Channels><Providers> 是进行分组的机制。这些机制进一步结构化了 XML display profile文档,以使每个“包”内都包含类似的对象。有关“包”的详细信息,请参阅将显示配置文件对象放在一起

以下各部分将更详细地介绍display profile对象。

DisplayProfile 根对象

DisplayProfile root 容器对象使桌面 servlet 能够作为容器提供者来获得对提供者的处理权等等。没有与频道相关的实际提供者类。此频道不应由任何其它display profile对象引用。

DisplayProfile 根对象 XML 语法

 <Container name="_desktopRoot" provider="none">

 <Properties/>

 <Available />

 <Selected />

 <Channels/>

 </Container>

提供者对象

提供者对象是软件实体,在显示频道的运行时执行。(因此,频道是运行时的提供者实例。)<Provider> 显示配置文件定义是一个模板,可用来定义显示配置文件频道。它为“提供者”java 对象设置类名称,并为所有需要的属性设置默认值。

<Provider> 显示配置文件定义包含display profile客户机构建 provider 对象(即 Java 类名称)所必需的信息。

<Provider> 显示配置文件定义为指向此提供者的所有频道设置默认属性值。仅当需要覆盖提供者默认值时,频道特定属性才是必需的。提供者display profile对象应包含在提供者 Java 对象中使用的所有属性的默认值。例如,如果提供者 Java 代码包含:

getStringProperty("color")

频道对象

channel 对象代表单个显示元素。可将 channel 对象包含的对象视为频道的属性。<Channel name> 定义包括对提供者的符号引用。此外,可以定义频道特定的属性,以覆盖在提供者定义中定义的默认值。对在display profile文档内给定的频道,需要唯一的频道名称,但可以在不同的频道级别定义相同的名称。

频道对象 XML 语法示例

<Channel name="SampleXML" provider="XMLProvider">  

  <Properties >

    <String name="refreshTime" value="600" advanced="true"/>

    <String name="title" value="XML Test Channel"/>

    <String name="description" value="This is a test of the XML Provider system"/>

    <String name="url" value="file:///etc/opt/SUNWps/desktop/default/SampleXML/getQuotes.xml"/>

    <String name="xslFileName" value="/etc/opt/SUNWps/desktop/default/SampleXML/html_stockquote.xsl"/>

  </Properties>

</Channel>

 

容器对象

container 对象除了不生成内容外,与 channel 对象相同。也就是说,容器是从其它频道获得内容的频道。container 对象允许使用可用和选定的频道列表,并可包含子频道定义。子频道通常与其它频道综合在一页上,并生成自己的内容。容器频道主要通过将一个或多个子频道的内容进行综合来生成内容。

容器对象 XML 语法示例

<Container name="TemplateTableContainer"provider="TemplateTableContainerProvider">

  <Properties>

    <String name="title" value="Template Based Table Container"/>

    <String name="description"

    value="This is the channel for the front provider"/>

    <Collection name="channelsColumn" advanced="true">

    <String name="SampleJSP" value="2"/>

    <String name="SampleXML" value="2"/>

    <String name="Notes" value="2"/>

    </Collection>

    <Collection name="channelsRow" advanced="true">

    <String name="MailCheck" value="3"/>

    <String name="SampleRSS" value="2"/>

    <String name="SampleXML" value="2"/>

    <String name="App" value="5"/>

    <String name="SampleSimpleWebService" value="6"/>

    <String name="Bookmark" value="4"/>

    <String name="Notes" value="3"/>

    </Collection>

    <Collection name="channelsIsRemovable">

    <Boolean name="UserInfo" value="false"/>

    </Collection>

  </Properties>

  <Available>

    <Reference value="UserInfo"/>

    <Reference value="MailCheck"/>

    <Reference value="SampleRSS"/>

    <Reference value="SampleJSP"/>

    <Reference value="SampleXML"/>

    <Reference value="App"/>

    <Reference value="SampleSimpleWebService"/>

    <Reference value="Bookmark"/>

    <Reference value="Notes"/>

  </Available>

  <Selected>

    <Reference value="UserInfo"/>

    <Reference value="MailCheck"/>

    <Reference value="SampleRSS"/>

    <Reference value="SampleJSP"/>

    <Reference value="SampleXML"/>

    <Reference value="App"/>

    <Reference value="SampleSimpleWebService"/>

    <Reference value="Bookmark"/>

    <Reference value="Notes"/>

  </Selected>

  <Channels>

  </Channels>

</Container>


将显示配置文件对象放在一起

rootproviderchannel 对象可以有与它们相关的属性。display profile将属性“包”内的属性分组。术语“包”表明其唯一的用途是作为存放属性的位置。属性没有与之相关的属性包。有关属性定义,请参阅 Sun ONE Portal Server 6.1 Desktop Customization Guide

在频道、提供者和根级的属性包有不同的语义。所有频道都共享全局属性。此处定义为全局属性的属性可由任意频道访问。主题即为全局属性的示例。全局定义主题数据,以使所有频道都能共享。

在提供者中定义的属性为基于此提供者的频道的默认值。如果未在频道中定义属性,则系统将使用默认值。这意味着提供者必须定义由提供者 Java 对象使用的每个属性。因此,如果 Java 代码包含:

String f = getStringProperty("color");

则display profile中的相应 <Provider name> 定义必须定义:

<String name="color" ... />


注意

不要将全局属性用作所有频道的默认值。display profile提供者定义可定义由 provider 对象(将使用提供者定义)使用的属性界面。


频道属性覆盖提供者定义中的默认值,以定制频道。例如,URLScaperProvider 定义 url 属性。此处默认值没有意义,因为频道将自动覆盖此值。


显示配置文件对象查找

运行时,系统从不直接从提供者请求属性。请求总是转到频道。如果 Java provider 对象请求属性,它将按以下顺序搜索display profile,直至找到属性,或直至到达容器层次结构的顶端:

  1. 频道的属性
  2. 频道的提供者的属性
  3. 频道的父项的属性
  4. 频道的父项的提供者的属性
  5. 频道的父项的父项的属性(依此类推)
  6. 在 display profileroot 定义中定义的全局属性包

因此,当频道请求其属性的名称时,它将得到以上所有属性的并集。

provider 对象中的属性将具有频道默认值的语义。例如,对于定义 title 属性的提供者 xml,所有衍生自提供者 xml 的频道都将继承 title 属性。如果频道要覆盖此属性,它可在自己的属性内设置值。


显示配置文件属性

本部分介绍display profile属性及如何指定属性值。

显示配置文件属性类型

display profile属性类型包括:

还可将基本属性值指定为正文内容。例如:

<String name=”foo”>bar</String>

<Integer name=”aNumber”>1</Integer>

<Boolean name=”flag”>false</Boolean>

文档类型定义元素属性

在显示配置文件 XML 中,下列属性不会在 XML 文件中列出,并且不会在管理控制台中显示(除非已更改了属性的默认值):

<advanced="false" lock="false" merge="fuse" propagate="true">

如果重置了某个默认值,则只有已更改了默认值的属性才会包括在 XML 片段中,并在管理控制台中显示。默认属性继承自提供者。如果对默认属性进行了编辑,它将会显示为定制属性。

指定显示配置文件属性

当指定display profile属性时,需要考虑如何将它们“嵌套”、如何使用集合中的未命名属性、如何使用条件属性及如何将属性传播。

属性嵌套

display profile可包含任意深度的嵌套属性(属性内的属性)。这样就可以拥有字符串的集合的集合的集合,或者字符串和集合的集合等等。例如,以下是多个集合的集合:

<Collection name="people">

  <Collection name="john">

    <Integer name="age" value="31"/>

  <String name="eyes" value="hazel"/>

  </Collection>

  <Collection name="bob">

    <Integer name="age" value="35"/>

    <String name="eyes" value="blue"/>

  </Collection>

  ... 等等 ...

</Collection>

未命名属性

基本属性类型(Boolean、Integer 和 String)可为未命名属性,例如:

<String value="apple"/>

相当于

<String name=”apple” value=”apple”/>

也就是说,如果一个基本属性没有名称,则其名称等于该属性的字符串值。

在实际当中,此属性仅在集合内有用,因为它使您能用集合而不是表来代表有序集(近似为列表)。例如,以下为代表邮政区号列表的集合:

<Collection name="zipcodes">

    <Integer value="95112"/>

    <Integer value="95054"/>

    <Integer value="98036"/>

</Collection>

使用未命名属性的关键是集合可表示表(name=value)或列表。


注意

不要在同一集合内创建与另一未命名属性有相同值的未命名属性。虽然系统会创建此属性,但由于重名,提供者将无法访问该值。

此外,由于 Sun ONE Portal Server 将名称和值相同的属性视为等同于未命名的 Boolean 属性,因此可能无意中在同一集合内创建了重名的属性。这将再次导致在所有属性中只可以访问一个属性。


条件属性

这为检索条件属性提供了一般操作。最常用的条件为 localeclient,但可定义任意条件类型的属性。有关详细信息,请参阅Sun ONE Portal Server 6.1 Desktop Customization Guide

例如,locale 过滤器的实现过程为:

public class LocalePropertiesFilter extends PropertiesFilter {

  public LocaleProperties() {

    super();

  }

  String getCondition()

    return "locale";

  }

  public boolean match(ProviderContext pc, String condition, String value) {

    return condition.toLowerCase().equals("locale") &&

      getValue().equals(value);

  }

}

条件属性查找过程会涉及到一个或多个属性过滤器。如果需要过滤器列表中的过滤器,则它必须与条件匹配,才能使整个条件查找成功。如果过滤器不是必须,则它可以不与条件匹配而不会导致整个查找失败。

一连串不需要的过滤器可用于实现逐渐不太明确的过滤器查找,类似于 Java 资源包查找的语义。例如,当区域查找后是日期查找时,可选过滤器会很有用。假定有过滤器 {locale=en, locale=US, date=03/03/2003},您可将它与带有限定语句 {locale=en; date=03/03/2003} 的属性成功匹配,即使该条件并不完全与过滤器规范匹配。这可以通过将区域过滤器设置为可选来实现。

在管理控制台中,条件属性显示为 condition-value,并且可以和集合一样进行编辑。条件属性可以被嵌套,并可添加到频道或另一条件属性内。使用“添加属性”页可添加新条件属性。

<ConditionalProperties> 标记

定义过滤条件必须使用 <ConditionalProperties> 标记。该标记包含以下必需属性:

在显示配置文件中,可按代码示例 5-1 中所述定义 <ConditionalProperties> 标记。

代码示例 5-1 <ConditionalProperties> 标记用法示例 

 

<Properties>

    <String name="foo" value="bar">

    <ConditionalProperties condition="locale" value="de">

      <String name="foo" value="german bar">

      <String name="baz" value="a german baz value">

    </ConditionalProperties>

    <ConditionalProperties condition="client" value="nokia">

      <ConditionalProperties condition="locale" value="de">

          <String name="foo" value="nokia german bar">

      </ConditionalProperties>

    </ConditionalProperties>

</Properties>

显示配置文件属性 Propagation

可以使用 propagate 属性标记所有的display profile属性(包括 Boolean、Collection、Integer、Strings 和 Reference)。propagate 属性是 Boolean 属性,值可以是 truefalse(默认值为 true)。当在本地设置属性但不在本地读取属性时,propagate 属性控制这些属性的处理方式。

例如,频道的属性集由以下各组属性的并集组成:

当频道请求属性值时,可从以上任意“远程”位置读取。当设置了属性值时,有两个位置可以存储属性值:

  1. 频道属性包
  2. 远程位置

propagate 属性控制位置。当将 propagate 属性设置为 true 时,会在本地将属性存储到设置属性的对象(大多数情况下是频道)中。当将 propagate 属性设置为 false 时,将就地设置属性(无论从何位置读取)。也就是说,当设置为 false 时,现有值将被更改,但当设置为 true 时,将创建新属性,并将其存储在本地(除非其已经在本地)。

请考虑以下display profile XML 片段:

<DisplayProfile>

  <Properties>

    <String name="color" value="blue"/>

  </Properties>

...

<Channel name="testchannel" provider="..."/>

  <Properties/>

</Channel>

...

</DisplayProfile>

属性 color 存在于全局属性包中。由于未设置 propagate(默认情况下为 true),因此如果频道 testchannel 设置属性 color,将产生以下结果:

<DisplayProfile>

  <Properties>

    <String name="color" value="blue"/>

  </Properties>

...

<Channel name="testchannel" provider="..."/>

  <Properties/>

    <String name="color" value="new value"/>

</Channel>

...

</DisplayProfile>

属性传播到设置它的本地对象(频道)。另一方面,如果在全局属性包中将 propagate 设置为 false,例如:

<String name="color” value="blue" propagate="false"/>

则频道 testchannel 设置属性 color 的结果将为:

<DisplayProfile>

  <Properties propagate="false">

    <String name="color" value="new value"/>

  </Properties>

...

<Channel name="testchannel" provider="..."/>

  <Properties/>

</Channel>

...

</DisplayProfile>

除标记单个属性外,也可用 propagate 属性标记属性包,例如:

<Properties propagate="false">

...

</Properties>

对于将被视为 propagate=false 的属性,必需满足以下条件:

对任何其它情况,都将 propagate 视为 true

只能使用 propagate 属性标记顶级属性。display profile DTD 允许这样处理,但display profile代码将忽略它。顶级属性直接在属性包内定义。

显示配置文件文档优先级

运行时,当用户登录时,系统将确定组成用户的显示配置文件文档集的一组文档。display profile的桌面内部实现(解释display profile的部件)通过查看用户所属的所有 LDAP 节点确定此组文档。此组文档可以是组织 DN (o=sesta.com)、子组织、角色 DN (cn=Role1,o=sesta.com)、uid (uid=jtb,ou=People,cn=Role1,0=sesta.com) 及全局显示配置文件。然后系统将读取每个 LDAP 节点和全局属性显示配置文件中的display profile文档(如果存在),并将所有文档组成一组。系统根据文档优先级将此组文档排序。较小的数字代表较低的优先级。例如,1 比 2 优先级低。于是文档就按从低到高的优先级顺序排序。有关此过程的详细信息,请参阅合并过程如何进行

用户级文档 (uid=jtb,ou=People,...) 是一个特例,称为基本文档。基本文档被视为优先级最高的文档。因此它的优先级数始终最大(故而有最高优先级)。所有合并都按排序后的顺序与基本文档关联,用户文档的优先级始终设置为最高优先级。在 <DisplayProfile> 标记中使用的 priority 属性使用特殊关键字 user,表明目前的display profile为用户级display profile。

进行合并时,从优先级最低的文档开始(最小的数字),然后逐步增加优先级,直至到达用户(基本)文档。

因此,display profile文档优先级的本质是优先级数。例如,组织级文档可以(但不必)比角色级文档有更高的优先级。这取决于需要如何为您的站点确定这些文档的优先级。

可使用 <DisplayProfile priority= syntax> 标记在 XML 文件中指定display profile文档优先级。可使用 Sun ONE Identity Server 管理控制台直接编辑显示配置文件来更改优先级,或使用 dpadmin 命令加载display profile来更改优先级。有关 dpadmin 命令的详细信息,请参阅第 14 章,“命令行实用程序”


注意

不要为两个display profile文档分配相同的优先级。否则将无法正确显示桌面。但是,本产品并不对重复的文档优先级进行检查。


文档优先级示例 1

此示例使用两个display profile,一个对应于组织 acme,另一个对应于 uid bill。当 Bill 登录 (uid=bill) 到桌面时,标题为“Bill 的书签”的书签频道将显示以下三个书签(按以下顺序):

文档优先级示例 2

此示例使用三个display profile,分别是全局display profile、组织 acme 的display profile 和角色 hradmin 的display profile。当具有 hradmin 角色的用户登录到桌面时,显示的 TemplateTableContainer 中将含有下列频道:

显示配置文件文档优先级总结

display profile文档优先级的高低取决于将合并顺序还是锁定功能作为定义系数。

如果不考虑锁定功能,则号码较小的display profile文档就有较低的优先级。首先合并号码较小的display profile文档,这样,优先级较高的文档的值就可以覆盖优先级较低的文档的值。这样理解,号码较小的文档就有较低的优先级。

但是,号码较小的display profile文档可以锁定对象,从而不受号码较大的文档影响。从这一角度来理解,号码较小的文档有较高的优先级。


显示配置文件合并语义

display profile由 XML 文档的层次结构组成。Sun ONE Portal Server 能够为用户、用户所属的每个角色和用户的组织或子组织存储display profile文档。运行时,系统合并这些显示配置文件文档,以向用户交付特定的 Portal 桌面。合并显示配置文件文档的过程有可能更改频道、提供者和属性定义,从而影响最终的display profile。

display profile数据格式包含定义如何组合这些文档的语法。此定义通常称为合并语义

当不同 LDAP 节点(基本 DN、DN 和角色 DN)的display profile文档合并成单一表现形式(即桌面)时,合并语义将控制属性的组合方式。合并语义为display profile文档假定了顺序。Sun ONE Identity Server 不提供角色的层次结构。而是提供平面的用户角色结构。所有角色都为同级角色。因此,Sun ONE Portal Server 为角色加上额外的顺序,以模拟层次结构。

用户的display profile文档集包括:存在于用户的 LDAP 组织和子组织节点的文档;存在于每个用户的角色节点的文档;存在于用户的入口节点的文档。不必在这些节点中的每个节点中都定义这些文档,但在一个节点中至少要定义一个文档。系统根据display profile文档定义的优先级值将文档集排序。有关详细信息,请参阅显示配置文件文档优先级

可以将文档合并的过程想象为将一个display profile文档放到另一个文档之上。当名称相似的频道、提供者和属性一个置于另一个之上时,将发生合并。合并根据display profile对象的名称进行,而不是根据display profile文档中定义的 XML 结构进行。名称相似的频道可存在于要合并的display profile的容器层次结构内的不同容器中。

合并过程如何进行

当用户登录到 Sun ONE Portal Server 并经验证后,系统将通过以下步骤确定用户的display profile:

  1. 通过搜索全局display profile、LDAP 组织、子组织、角色和用户所属的用户节点,查找该用户的所有display profile文档。
  2. 将检索到的display profile文档置于临时区,可将其视为一个包。
  3. 从最低优先级开始,按优先级将display profile包内的文档排序。(检索到文档的节点不影响优先级排序。而且,用户display profile文档始终具有最高优先级。)
  4. 从包中取出文档,先取出优先级最低的文档,然后将下一级文档置于此文档之上,并应用合并和锁定语义。
  5. 继续执行步骤 4,直至将所有文档从包中取出,这样系统就会为用户返回一个值,该值为文档中找到的对象的一个合并结果。

显示配置文件合并类型

display profile使用以下三种类型的合并确定如何组合display profile文档:

对于频道和提供者,fuse 有特殊的意义。频道本身实际上并不结合在一起。相反,fuse 只表明应合并频道或提供者的属性。replace 语义替换整个频道或提供者,包括所有的属性。而 remove 语义只从合并到那一点的合并结果中删除整个频道或提供者。

display profile <displayProfile> 根节点也可有合并语义。replace 语义是指在优先级较高的文档中定义的所有 DP 对象将完全覆盖在优先级较低的文档中定义的对象。系统将使合并到那一点的所有合并结果无效,并将优先级较高的文档作为合并的新起点。remove 语义表明系统将删除合并到此文档的所有合并结果。合并将从已排序的文档集中找到的下一display profile文档开始。对于频道和提供者,fuse 语义是指系统应合并包含的对象(频道和提供者)。

基本display profile属性(不能包含其它属性的属性)不能使用 fuse 语义。这包括 String、Integer、Boolean 和 Reference 属性。

频道的属性集由频道的属性、频道的提供者的属性、频道的父项的属性等等组成可以将整个属性集视为频道的单个文档属性。文档合并的实质是,文档的整个属性集由频道的单个文档属性集(用户的合并文档集中的所有文档)的并集组成。

Remove 示例:使用 remove 合并修改容器的选定频道列表

以下示例显示所有用户的合并集如何能由具有以下display profile片段的组织级文档组成。

<Container name="TemplateTableContainer" provider="TemplateTableContainerProvider" merge="fuse">

    <Properties> ...</Properties>

    <Available> ...</Available>

    <Selected merge="fuse">

        <Reference value="UnixTipoftheDay"/>

    </Selected>

</Container>

“unix 每日提示”介绍使用 UNIX 的方法。属于管理员角色的用户可能感觉此频道没有用。要从具有管理员角色的每个用户中删除此频道,需在管理员角色的文档中如下定义 TemplateTableContainer 频道:

admin role

<Container name="TemplateTableContainer" provider="TemplateTableContainerProvider" merge="fuse">

    <Properties> ...</Properties>

    <Available> ...</Available>

    <Selected merge="fuse">

        <Reference value="Outages"/>

        <Reference value="SolarisAdmin"/>

        <Reference value="AdminTipoftheDay"/>

        <Reference value="UnixTipoftheDay" merge="remove"/>

    </Selected>

</Container>

前面的示例代码片段使系统从管理员角色的显示配置文件中删除 Reference value="UnixTipoftheDay"。

Replace 示例:使用 replace 合并从所有用户的显示中删除频道

以下示例表明,对于特定的容器,角色管理员可以忽略在组织级中定义的所有频道。组织定义类似如下所示:

organization display profile

<Container name=...>

    ...

    ...

    <Selected>

        <Reference name="X"/>

        <Reference name="Y"/>

        <Reference name="Z"/>

    </Selected>

</Container>

因为角色管理员不想使该角色下的所有用户都有 X、Y 或 Z 频道,故应按如下所示定义容器:

admin role

<Container name=...>

    ...

    ...

    <Selected merge="replace">

        <Reference name="A"/>

        <Reference name="B"/>

        <Reference name="C"/>

    </Selected>

</Container>

角色文档的容器中的选定列表将替换组织文档的容器中的选定列表。

Fuse 示例:使用 fuse 合并创建基于角色的频道列表

通常可使用 fuse 合并语义组合非基本display profile对象。这些对象包括 Collection 和可用或选定的频道列表。此处,fuse 表明包含在非基本属性中的所有属性也应被合并。fuse 的这种使用方法使得呈现给用户的最终非基本属性可从各种文档中建立。

以下示例显示配置文件文档针对属于管理员、雇员和影迷角色的用户。为用户选定的频道显示在最后。

admin role

<Container name="TemplateTableContainer" provider="TemplateTableContainerProvider" merge="fuse">

    <Properties> ...</Properties>

    <Available> ...</Available>

    <Selected merge="fuse">

        <Reference value="Outages"/>

        <Reference value="SolarisAdmin"/>

        <Reference value="AdminTipoftheDay"/>

    </Selected>

</Container>

employee role

<Container name="TemplateTableContainer" provider="TemplateTableContainerProvider" merge="fuse">

    <Properties> ...</Properties>

    <Available> ...</Available>

    <Selected merge="fuse">

        <Reference value="Benefits"/>

        <Reference value="EmployeeNews"/>

    </Selected>

</Container>

movieFreak role

<Container name="TemplateTableContainer" provider="TemplateTableContainerProvider" merge="fuse">

    <Properties> ...</Properties>

    <Available> ...</Available>

    <Selected merge="fuse">

        <Reference value="NewMoviesReleases"/>

        <Reference value="MovieShowTimes"/>

    </Selected>

</Container>

用户的选定频道的结果列表如下所示,其中可用频道列表的排序方式与合并时使用的排序方式相同,即从低到高的优先级顺序:

<Container name="TemplateTableContainer" provider="TemplateTableContainerProvider" merge="fuse">

    <Properties> ...</Properties>

    <Available> ...</Available>

    <Selected merge="fuse">

        <Reference value="Outages"/>

        <Reference value="SolarisAdmin"/>

        <Reference value="AdminTipoftheDay"/>

        <Reference value="Benefits"/>

        <Reference value="EmployeeNews"/>

        <Reference value="NewMoviesReleases"/>

        <Reference value="MovieShowTimes"/>

    </Selected>

</Container>

合并锁定

任何可被合并的显示配置文件对象都可被锁定。当对象被锁定时,它将不受高优先级文档中的合并语义的影响。这使低优先级文档能防止高优先级文档使用合并语义对显示配置文件的特殊部分进行更改。

合并锁定示例:使用 lock 合并强制所有用户使用属性值

以下示例显示如何确保特定组织的所有用户都能看到“雇员新闻”频道。用户无法从他们的显示内容中删除此频道。在组织级文档中,容器频道的选定列表定义如下:

<Selected merge="fuse">

    ...

    <Reference value="EmployeeNews" lock="true"/>

    ...

</Selected>

合并锁定示例:使用 replace 合并从所有用户的显示内容中强制删除频道

以下示例显示如何强制删除“在线游戏”频道。在此情形中,用户已将此频道添加到他们的用户文档中的选定频道列表中,因此只从组织级文档的选定频道列表中将其删除并不起作用。雇员和组织列表将合并在一起,从而显示出“在线游戏”频道。要强制删除组织中所有用户的频道,应按如下方式定义选定的频道:

<Selected merge="fuse">

    ...

    <Reference value="OnlineGames" merge="remove" lock="true"/>

    ...

</Selected>

remove 语义从合并结果中删除频道,lock 防止优先级较低的文档重新将其值合并回来。


显示配置文件和 Sun ONE Identity Server

用户的display profile文档集包括:

不必在这些节点中的每个节点中都定义这些文档,但在一个节点中至少要定义一个文档。系统根据display profile文档定义的优先级值将文档集排序。有关详细信息,请参阅显示配置文件文档优先级。当不同节点的display profile文档合并成单独的表现形式或桌面时,合并语义将控制属性的组合方式。有关详细信息,请参阅显示配置文件合并语义

管理员可使用 Sun ONE Identity Server 管理控制台编辑display profile。可以对委托管理员进行设置,使他们在 Sun ONE Identity Server 管理控制台中看不到display profile。当创建桌面服务模板时进行此设置操作。为桌面服务创建模板时,如果取消选中“显示桌面服务属性”复选框,可以对委托管理员隐藏display profile文本。


提示

组织管理员可以通过“Portal 桌面”服务定义与某些角色相关的容器(或容器层次结构)。然后,委托管理员(角色管理员)就可以通过“Portal 桌面”属性页中的“频道和容器管理链接”定义此容器下所需的频道和容器。有关详细信息,请参阅使用频道和容器管理链接管理频道



管理显示配置文件

可以通过 Sun ONE Identity Server 管理控制台和 dpadmin 命令编辑显示配置文件(和其它“Portal 桌面”服务数据)。编辑display profile时,可添加、修改和删除display profile中的提供者、容器和频道,并可编辑属性。

此外,Sun ONE Identity Server 管理控制台还在“Portal 桌面”属性页中提供了“频道和容器管理”链接,以添加频道和编辑属性。创建新频道时,还可以使用此链接修改属性。


注意

“频道和容器管理”链接适用于委托管理,并允许管理员添加和修改容器和频道的属性。整个系统的管理员应负责添加可供委托管理员使用的容器和提供者。


表 5-2 解释了不同类型的display profile及如何使用 Sun ONE Identity Server 管理控制台管理它们。此表有三列:第一列为display profile的类型;第二列列出了如何使用 Sun ONE Identity Server 管理控制台访问display profile;第三列为简要说明。

表 5-2 显示配置文件文档的类型

显示配置文件文档的类型

如何使用 Sun ONE Identity Server 管理控制台进行查看

说明

全局显示配置文件文档

选择“查看服务管理”。单击“Portal 桌面”旁的属性箭头。在桌面“全局”属性部分,单击“编辑 XML”。

定义由系统中所有用户继承的显示配置文件元素,无论它们属于哪个组织或角色。(尽管目前并未强制进行定义,但您可能想使用显示配置文件 XML 文档定义将由每个用户使用的公共提供者。)

动态显示配置文件文档

选择“查看服务管理”。单击“Portal 桌面”旁的属性箭头。在桌面“动态”属性部分,单击“编辑 XML”。

介绍容器管理和频道的属性。此显示配置文件不“用于”在运行时生成用户的桌面,但会作为每个新创建的组织和角色的默认显示配置文件。默认情况下,动态显示配置文件文档是空白的。要使用动态display profile,首先需要填写它。

组织、子组织或角色显示配置文件

选择“查看用户管理”。从“显示”菜单中选择相应的组织、子组织,如有必要,选择“角色”。从“显示”菜单中选择“服务”。单击“Portal 桌面”旁的属性箭头。在桌面页中,单击“编辑 XML”。

为选定的组织、子组织或角色显示display profile。当创建新组织、子组织或角色时,将为此实体创建模板。当为桌面服务创建模板时,初始显示配置文件被设置为前述的动态显示配置文件。因此,如果动态display profile为空白,则不会填入任何内容。

很可能要使用此display profile文档定制容器管理和频道属性,以满足不同组织和角色的需要。

安装 Sun ONE Portal Server 时,将创建初始组织。然后安装程序将导入display profile全局级文档,并根据您的指定导入默认display profile。

此后,每次创建新组织、子组织或角色时,不会自动加载display profile。对新创建的组织、子组织或角色,必须手动加载显示配置文件。有关详细信息,请参阅加载显示配置文件(管理控制台)

管理display profile的高级步骤是:

  1. 为任意新创建的组织、子组织或角色加载显示配置文件。(对于在安装过程中创建的组织,不必执行此步骤。)
  2. 使用 dpadmin 命令、“编辑 XML”链接修改display profile;或者将其作为已保存然后使用“下载 XML”和“上载 XML”链接来加载的文件进行修改。
  3. 添加频道和容器,并使用“频道和容器管理”链接添加、删除和修改它们的属性。

默认显示配置文件文档

表 5-3 说明了在安装示例门户时,Sun ONE Portal Server 桌面在 /opt/SUNWps/samples/portal desktop 目录下提供的display profile文档。此表有两列:第一列为display profile文档,第二列为简要说明。

表 5-3 示例门户随附的显示配置文件文档

显示配置文件文档

说明

dp-anon.xml

由 authless 匿名用户使用。

dp-org.xml

在默认组织级加载的示例显示配置文件。它定义所有全局属性,用于组织以及组织所使用的频道定义。

dp-org-final.xml

Dp-org.xml 的副本,带有在“书签”和“应用程序”频道中定义的 NetMail 链接。此display profile文档在创建 NetMail 服务时使用。

dp-providers.xml

在全局显示配置文件级加载的示例显示配置文件。此文档定义所有的提供者定义。由于这些提供者将由所有的组织使用,因此系统将此显示配置文件加载在顶级,从而使每个组织都能使用。如果提供者定义只由一个组织使用,则在组织级显示配置文件中定义它。

有关定制这些示例display profile的信息,请参阅 Sun ONE Portal Server 6.1 Desktop Customization Guide

加载显示配置文件

首次安装 Sun ONE Portal Server 时,安装程序将创建一个初始组织。安装程序还将导入display profile全局级文档,并根据您的指定导入默认display profile。如果决定不安装示例门户,将不会安装示例显示配置文件文档。

此后,当创建新组织、子组织或角色时,不会自动加载display profile。对新创建的组织、子组织或角色,必须手动加载显示配置文件。

有三种加载显示配置文件的基本方法:

加载显示配置文件(管理控制台)

  1. 以管理员身份登录到 Sun ONE Identity Server 管理控制台。
  2. 默认情况下,位置窗格中的“标识管理”处于选中状态,导航窗格中会显示所有已创建的组织。

  3. 选择要从中复制display profile的组织或子组织。
  4. 在“查看”菜单中选择“服务”。
  5. 在导航窗格中单击桌面旁的属性箭头。
  6. 此时数据窗格中会出现“Portal 桌面”属性。


    提示

    可能必须向下滚动才能看到桌面服务。


  7. 复制“显示配置文件”。
  8. 单击“编辑 XML”,然后选择并复制display profile的整个文本。

  9. 选择要加载display profile的组织或子组织。
  10. 在导航窗格的“查看”菜单中选择“服务”。
  11. 在导航窗格中单击桌面旁的属性箭头。
  12. 此时在数据窗格中会显示“Portal 桌面”服务属性列表(包括显示配置文件 XML)。

  13. 单击“编辑 XML”。
  14. display profile XML 文档出现在文本窗口中。

  15. 将复制的display profile粘贴到display profile窗口中。
  16. 完成后,单击“保存”。
  17. 所做更改仅影响此特定组织内的用户。

加载显示配置文件(命令行)

使用 dpadmin 命令的 modify 子命令加载显示配置文件。

例如,以下命令将加载显示配置文件 (dp-org.xml):

dpadmin add -u "uid=amAdmin,ou=People,o=sesta.com,o=isp" -w password -d

"o=sesta.com,o=isp" dp-org.xml


注意

可以在命令的末尾、文件名之前添加 -r --dryrun 选项,以便在对 LDAP 进行更改前验证命令是否会成功执行。


下载和上载显示配置文件

  1. 以管理员身份登录到 Sun ONE Identity Server 管理控制台。
  2. 默认情况下,位置窗格中的“标识管理”处于选中状态,导航窗格中会显示所有已创建的组织。

  3. 选择要从中复制display profile的组织或子组织。
  4. 在导航窗格的“查看”菜单中选择“服务”。
  5. 在导航窗格中单击桌面旁的属性箭头。
  6. 此时数据窗格中会出现“Portal 桌面”属性。


    提示

    可能必须向下滚动才能看到桌面服务。


  7. 单击“全局”属性部分中的“下载 XML”,并将显示配置文件保存到文件中。
  8. 在导航窗格中选择要上载display profile的组织、子组织或角色。
  9. 在导航窗格的“查看”菜单中选择“服务”。
  10. 在导航窗格中单击桌面旁的属性箭头。
  11. 单击“上载 XML”并指定要加载的文件。
  12. 单击“上载”。
  13. 出现一条消息,指示显示配置文件上载成功。

  14. 单击“关闭”。
  15. 所做更改仅影响此特定组织内的用户。

查看整个显示配置文件

删除显示配置文件

如果由于某种原因(例如显示配置文件已损坏)要删除显示配置文件,可以使用带有 remove 子命令的 dpadmin 命令。

例如,要从根部删除整个显示配置文件 (dp-org.xml):

dpadmin remove -u "uid=amAdmin,ou=People,o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" -t root

如果从根部或从需要显示配置文件的节点删除显示配置文件,必须加载新的显示配置文件。例如,如果如上所示删除了 dp-org.xml 显示配置文件,则必须加载另一类似的显示配置文件,如 dp-org-final.xml 显示配置文件。有关加载显示配置文件的信息,请参阅加载显示配置文件(命令行)

使用频道和容器管理链接管理频道

使用“频道和容器管理”链接可以管理以下内容:

使用桌面属性页时,委托管理员只能看到“频道和容器管理”链接。所有其它的display profile属性被隐藏,从而使属性的安全得到保证。

频道和容器管理默认提供者

“Portal 桌面频道和容器管理”链接显示一个管理屏幕,可使用该屏幕添加或删除容器频道或内容频道。

添加频道

使用“频道”列表的“添加”链接可从定义的内容提供者列表中选择一个内容提供者进行添加。表 5-4 显示可作为创建新频道的基础使用的提供者频道。此表有两列:第一列为提供者,第二列为提供者的简要说明。有关已定义的内容提供者的详细信息,请参阅 Sun ONE Portal Server Desktop Customization Guide

表 5-4 已定义的提供者频道 

提供者

说明

AppProvider

列出到网络应用程序的链接(用户可定制的列表)。

BookmarkProvider

允许用户管理在门户页上显示的书签列表。

JSPProvider

从一个或多个 JSP 文件获得内容。

LoginProvider

允许通过匿名门户页验证用户是否可登录 Sun ONE Identity Server。

MailCheckProvider

提供有关用户邮件状态的信息。

NotesProvider

用电子列表列出系统范围内的消息,并允许用户发布此类消息。

SearchProvider

使用 Sun ONE Portal Server搜索引擎提供搜索功能。

URLScraperProvider

从给定的 URL 获得内容,并使用 Sun ONE Portal Server 对内容进行格式处理。

UserInfoProvider

从显示配置文件和 iPlanet Portal Server Access Management Edition 中收集信息。它显示问候语、用户姓名、时区、语言环境,并可访问用户的 IMAP 和 SMTP 数据。

XMLProvider

从给定的 URL 获得 XML 内容,并使用 XSLT 将内容转换成标记语言。

简单Web 服务Web 服务提供者

“简单Web 服务 (SWS) 提供者”提供了访问面向数据的“Web 服务”功能。可以以基于此提供者的频道为例,通过访问货币转换率服务来说明“Web 服务”的实现。

有两种类型的简单Web 服务Web 服务频道:

默认情况下,在示例 Portal 桌面上提供示例预先配置的Web 服务频道。示例可配置的Web 服务频道可以由管理员使用 Identity Server 管理控制台来添加。

两种Web 服务频道均最适合于相对比较简单的Web 服务,例如输入参数不复杂以及需要用户界面显示的Web 服务Web 服务。如果“简单Web 服务提供者”检测到它不能处理特定的Web 服务,会向用户显示相应的消息。

在任何时候,基于此提供者的频道都可以捆绑到简单Web 服务和相关的方法。“简单Web 服务提供者”支持简单的数据类型,如整型、字符串、双精度型。在本版软件中,简单Web 服务提供者将:

“简单Web 服务提供者”支持下列 WSDL 配置属性类型:

预先配置的Web 服务频道

示例预先配置的Web 服务频道提供与示例货币转换器服务进行交互的方法。

要设置预先配置的Web 服务频道,需要通过管理控制台指定 WSDL URL 和方法名称。

可配置的Web 服务频道

可配置的Web 服务频道允许用户将频道切换为指向用户指定的Web 服务。它通过允许用户修改属于Web 服务的 WSDL URL 的值和方法名称来实现。但是与预先配置的频道类型不同,可配置的Web 服务频道不允许用户保存Web 服务输入参数的默认值。

新建容器频道

使用“容器频道”列表的“新建”链接可从已定义的容器提供者列表中选择一个容器提供者进行创建。表 5-5 显示可作为创建新频道的基础使用的提供者频道。此表有两列:第一列为提供者,第二列为提供者的简要说明。有关已定义的内容提供者的详细信息,请参阅 Sun ONE Portal Server 6.1 Desktop Customization Guide

表 5-5 已定义的提供者容器频道 

提供者

说明

JSPFrameCustomTableContainerProvider

在用户的基于 JSP 框架集的“Portal 桌面”上创建新框架。

JSPSingleContainerProvider

显示单个频道。

JSPTabContainerProvider

显示由带标题的一些标签组成的频道。

JSPTabCustomTableContainerProvider

在用户的基于 JSP 标签的“Portal 桌面”上创建新标签。

JSPTableContainerProvider

在表中显示内容频道。

TemplateEditContainerProvider

绘制“编辑”页的框架。

TemplateTabContainerProvider

支持多标签。

TemplateTabCustomTableContainerProvider

创建新标签。

TemplateTableContainerProvider

在表中显示内容频道。

创建频道或容器频道

  1. 以管理员身份登录到 Sun ONE Identity Server 管理控制台。
  2. 默认情况下,位置窗格中的“标识管理”处于选中状态,导航窗格中会显示所有已创建的组织。

  3. 选择要添加频道的组织、子组织或角色。
  4. 当您以委托管理员身份登录时,系统将自动转到您具有管理访问权的组织、子组织或角色。

  5. 在导航窗格的“查看”菜单中选择“服务”。
  6. 在导航窗格中单击“Portal 桌面”旁的属性箭头。
  7. 桌面属性页出现在数据窗格中。

  8. 在桌面页中,单击“频道和容器管理”链接。
  9. 出现“频道”页,且容器路径设置在根目录处。

  10. 单击要添加频道或容器的“容器”。
  11. 页面上部显示要添加频道的容器路径。已定义的频道和容器(如果有)出现在列表中。

  12. 单击“新建”以添加容器频道或频道。
  13. 要添加容器频道,请单击“容器频道”下的“新建”。要添加频道,请单击“频道”下的“新建”。

    出现“新建频道”页面。

  14. 键入频道名称,并从菜单中选择提供者类型。
  15. 有关可用提供者的信息,请参阅表 5-4

  16. 单击“创建”。

修改频道或容器频道属性

  1. 以管理员身份登录到 Sun ONE Identity Server 管理控制台。
  2. 默认情况下,位置窗格中的“标识管理”处于选中状态,导航窗格中会显示所有已创建的组织。

  3. 选择要修改频道的组织、子组织或角色。
  4. 当您以委托管理员身份登录时,系统将自动转到您具有管理访问权的组织、子组织或角色。

  5. 在“查看”菜单中选择“服务”。
  6. 在导航窗格中单击“Portal 桌面”旁的属性箭头。
  7. 桌面属性页出现在数据窗格中。

  8. 在桌面页中,单击“频道和容器管理”链接。
  9. 出现“频道”页。容器路径位于上部。已定义的频道出现在列表中。

  10. 单击要修改的频道或容器频道旁的“编辑属性”链接。
  11. 出现“属性”页。

  12. 根据需要修改属性。
  13. 有关频道属性的详细信息,请参阅 Sun ONE Portal Server 6.1 Desktop Customization Guide

  14. 完成后,单击“保存”。

删除频道或容器频道

  1. 以管理员身份登录到 Sun ONE Identity Server 管理控制台。
  2. 默认情况下,位置窗格中的“标识管理”处于选中状态,导航窗格中会显示所有已创建的组织。

  3. 选择要修改频道的组织、子组织或角色。
  4. 当您以委托管理员身份登录时,系统将自动转到您具有管理访问权的组织、子组织或角色。

  5. 在导航窗格的“查看”菜单中选择“服务”。
  6. 在导航窗格中单击“Portal 桌面”旁的属性箭头。
  7. 桌面属性页出现在数据窗格中。

  8. 在桌面页中,单击“频道和容器管理”链接。
  9. 出现“频道”页。容器路径位于上部。已定义的频道出现在列表中。

  10. 单击要删除的频道或容器频道旁的复选框。然后单击“删除”。
  11. 频道被删除,且“频道”列表被更新,以显示已将其删除。

管理容器

管理容器时,可使用 Sun ONE Identity Server 管理控制台直接编辑显示配置文件 XML。还可以使用 dpadmin 命令,本部分中大多是通过各种示例对此命令进行的说明。

这些示例包括:

有关通过 Sun ONE Identity Server 管理控制台编辑display profile的信息,请参阅使用显示配置文件文本窗口

使用 dpadmin 命令

dpadmin 命令的语法是:

$ dpadmin list|merge|modify|add|remove [command-specific options] -u uid -w password {-g|-d dn} [-l locale] [-r] [-b] [-h] {-v|--version} [file]

有关 dpadmin 命令的完整语法,请参阅第 14 章,“命令行实用程序”。运行 dpadmin 命令时,请注意以下事项:

使用 dpadmin 命令的指导原则

请按以下指导原则来运行 dpadmin 命令,以更新显示配置文件:


警告

在运行 dpadmin listdpadmin modify 命令期间,不要在 LDAP 服务器中以任何方式(使用管理控制台、dpadmin 命令或 ldapmodify 命令)更改显示配置文件文档。否则,这些更改内容将被最新的 dpadmin modify 结果覆盖。


修改显示配置文件

可以通过执行以下操作之一修改显示配置文件对象:

了解显示配置文件错误消息

当尝试使用和保存包含无效 XML 的display profile文档时,系统将报告错误。错误消息以标题、消息和子消息形式出现。消息框的标题为“无效 XML 文档”。消息将显示以下内容:

如果收到“无效 XML 文档”错误消息,则需要更正此错误,以便能保存处理的 XML 文档。

查看显示配置文件对象

替换容器中的频道

  1. 使用 modify 子命令,用在标准输入上指定的值替换容器中的频道。
  2. 例如,此命令使用在标准输入上指定的值替换容器 TemplateTableContainer 中的频道 Test

    dpadmin modify -p TemplateTableContainer -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" <<EOF

    <?xml version="1.0" encoding="utf-8" standalone="no"?>

    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

    <Channel name="Test" provider="testprovider">

        <Properties>

            <String name="title" value="Test Channel"/>

            <String name="description" value="This channel is a test."/>

        </Properties>

    </Channel>

    EOF

  3. 使用 list 子命令验证是否已替换频道。
  4. 有关信息请参阅查看显示配置文件对象

替换频道中的属性

  1. 使用 modify 子命令用在标准输入上指定的值替换频道中的属性。
  2. 例如,对频道 NewChannel 执行以下命令,以使用 new.xml 文件中的新对象替换在该文件中命名的属性,其中 new.xml 为:

    <?xml version="1.0" encoding="utf-8" standalone="no"?>

    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

    <String name="welcome" value="Hi, welcome to your desktop!"/>

    dpadmin modify -p TemplateTableContainer/NewChannel -u "uid=amAdmin,ou=People,o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" new.xml

  3. 使用 list 子命令验证是否已替换属性。
  4. 有关详细信息,请参阅查看显示配置文件对象

将频道添加到容器

  1. 将display profile输入 XML 文件修改为只包括新 <Channel> 定义,例如创建以下文件 testadd.xml

    <?xml version="1.0" encoding="utf-8" standalone="no"?>

    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

    <Channel name="TestChannel" provider="testprovider">

        <Properties>

          <String name="teststring" value="sfds"/>

        </Properties>

    </Channel>

  2. 使用 add 子命令将频道添加到容器中。
  3. 例如,以下命令将在 testadd.xml 中定义的新频道添加到display profile中。在此示例中,新频道必须添加在 TemplateTableContainer 级。如果未使用 -p 选项指定父对象,则将在根级添加频道。

    dpadmin add -p "TemplateTableContainer" -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" testadd.xml


    注意

    当向 JSPTabContainer 添加新频道时,实际是添加了新标签。JSPTabContainer 需要为其所有可用和选定的标签定义 TabProperties。因此,对添加到 JSTTabContainer 中的任意新容器或频道,应添加 JSPTabContainer 中(已添加了新频道或容器)TabProperties Collection 内的以下 XML 片段。


    :

    <?xml version="1.0" encoding="utf-8" standalone="no"?>

    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

    <Collection name="<New Channel Name>">

                <String name="title" value="<New Channel Title>"/>

                <String name="desc" value="<New Channel Description>"/>

                <Boolean name="removable" value="false"/>

                <Boolean name="renamable" value="true"/>

                <Boolean name="predefined" value="true"/>

    </Collection>

  4. 使用 list 子命令验证是否已添加频道。
  5. 有关信息请参阅查看显示配置文件对象

将属性添加到集合中

  1. 使用 combine (-m) 选项将新属性添加到集合中。
  2. 例如,以下命令将新属性 msg2 添加到集合 bar 中。现有属性 msg 仍留在结果中。在添加之前和之后使用 list 子命令来显示属性值。

    dpadmin list -n TemplateTableContainer -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp

    ...

    <Collection name="foo">

        <Collection name="bar">

            <String name="msg" value="hi"/>

        </Collection>

    </Collection>

    ...

    dpadmin modify -p TemplateTableContainer -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" -m <<EOF

     

    <?xml version="1.0" encoding="utf-8" standalone="no"?>

    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

    <Collection name="foo">

        <Collection name="bar">

            <String name="msg2" value="woo hoo"/>

        </Collection>

    </Collection>

    EOF

    dpadmin list -n TemplateTableContainer -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp_

    ...

    <Collection name="foo">

        <Collection name="bar">

            <String name="msg" value="hi"/>

            <String name="msg2" value="woo hoo"/>

        </Collection>

    </Collection>

    ...

添加集合属性

  1. 使用 add 子命令,用标准输入上指定的值添加集合属性。
  2. 例如,以下命令将在标准输入上指定的集合属性 zipCodes 添加到名为 Postal 的频道、容器或提供者中。

    dpadmin add -p SamplesTabPanelContainer/Postal -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" <<EOF

    <?xml version="1.0" encoding="utf-8" standalone="no"?>

    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

    <Collection name="zipCodes">

        <Integer value="98012"/>

        <Integer value="98036"/>

        <Integer value="94025"/>

        <Integer value="95112"/>

    </Collection>

    EOF

  3. 使用 list 子命令验证是否已添加集合属性。
  4. 有关信息请参阅查看显示配置文件对象

从频道或容器中删除属性

  1. 使用 remove 子命令从频道或容器中删除属性。
  2. 例如,以下命令从全局级 Bookmarks 频道(或容器)中删除 locations 属性。

    dpadmin remove -t property -p Bookmarks -n locations -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -g

  3. 使用 list 子命令验证是否已删除属性。
  4. 有关信息请参阅查看显示配置文件对象

删除提供者

  1. 使用 remove 子命令删除提供者。
  2. 例如,以下命令将删除提供者 NotesProvider

    dpadmin remove -t provider -n "NotesProvider" -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp"

  3. 使用 list 子命令验证是否已删除提供者。
  4. 有关信息请参阅查看显示配置文件对象

从容器中删除频道

  1. 使用 remove 子命令从容器中删除频道。
  2. 例如,以下命令将删除父容器 TemplateTableContainer 中的 Test 频道。

    dpadmin remove --type channel --parent TemplateTableContainer --name "Test" --runasdn "uid=amAdmin,ou=People,o=sesta.com,o=isp" --password password --dn "o=sesta.com,o=isp"

  3. 使用 list 子命令验证是否已删除频道。
  4. 有关信息请参阅第 5 章,“管理显示配置文件”

更改显示配置文件文档优先级

  1. 使用 modify 子命令更改display profile文档的优先级。
  2. 例如,以下命令将组织文档的原优先级改为 30。

    dpadmin modify -m -u "uid=amAdmin,ou=People,o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" <<EOF

    <?xml version="1.0" encoding="utf-8" standalone="no"?>

    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

    <DisplayProfile priority=”30” version=”1.0”

    <Properties/>

    <Channels/>

    <Providers/>

    EOF

  3. 使用 list 子命令验证是否已更改优先级。
  4. 有关信息请参阅查看显示配置文件对象

使频道可供容器使用

  1. 使用带有 combine (-m) 选项的 modify 子命令,将在标准输入上指定的频道添加到容器的现有 Available 列表中。
  2. 例如,以下命令将 BookMark 频道添加到 TemplateTableContainerAvailable 列表中。

    dpadmin modify -p TemplateTableContainer -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" -m <<EOF

    <?xml version="1.0" encoding="utf-8" standalone="no"?>

    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

    <Available>

        <Reference value="BookMark">

    </Available>

    EOF

  3. 使用 list 子命令验证是否已更改优先级。
  4. 有关信息请参阅查看显示配置文件对象

使频道不可供容器使用

  1. 使用 remove 子命令从容器的 Available 列表中删除频道。
  2. 例如,以下命令将从父容器 TemplateTableContainer 中的 Available 列表中删除 Test 频道。

    dpadmin remove --type available --parent TemplateTableContainer --name "Test" --runasdn "uid=amAdmin,ou=People,o=sesta.com,o=isp" --password password --dn "o=sesta.com,o=isp"

  3. 使用 list 子命令验证是否已删除频道。
  4. 有关信息请参阅查看显示配置文件对象

从容器的可用频道列表中选择频道

  1. 使用带有 combine (-m) 选项的 modify 子命令,将在标准输入上指定的频道添加到容器的现有 Selected 列表中。
  2. 例如,以下命令将 BookMark 频道添加到 TemplateTableContainerSelected 列表中。

    dpadmin modify -p TemplateTableContainer -u "uid=amAdmin,ou=People, o=sesta.com,o=isp" -w password -d "o=sesta.com,o=isp" -m <<EOF

    <?xml version="1.0" encoding="utf-8" standalone="no"?>

    <!DOCTYPE DisplayProfile SYSTEM "jar://resources/psdp.dtd">

    <Selected>

        <Reference value="BookMark">

    </Selected>

    EOF

  3. 使用 list 子命令验证是否已更改优先级。
  4. 有关信息请参阅查看显示配置文件对象

从容器的可用频道列表中取消选择频道

  1. 使用 remove 子命令从容器的 Selected 列表中删除频道。
  2. 例如,以下命令将从父容器 TemplateTableContainer 中的 Selected 列表中删除 Test 频道。

    dpadmin remove --type selected --parent TemplateTableContainer --name "Test" --runasdn "uid=amAdmin,ou=People,o=sesta.com,o=isp" --password password --dn "o=sesta.com,o=isp"

  3. 使用 list 子命令验证是否已删除频道。
  4. 有关信息请参阅查看显示配置文件对象

使用显示配置文件文本窗口

Sun ONE Identity Server 提供一个文本窗口,用以查看和直接编辑display profile文本。只要具有对组织、子组织或角色的管理访问权,就可以使用 Sun ONE Identity Server 管理控制台导航到此文本窗口,并查看或编辑display profile。


注意

如果使用的浏览器是 Netscape 4.x,则无法直接通过管理控制台编辑display profile XML。


访问显示配置文件文本窗口

  1. 以管理员身份登录到 Sun ONE Identity Server 管理控制台。
  2. 默认情况下,位置窗格中的“标识管理”处于选中状态,导航窗格中会显示所有已创建的组织。

  3. 选择要修改display profile文档的组织、子组织或角色。
  4. 当您以委托管理员身份登录时,系统将自动转到您具有管理访问权的组织、子组织或角色。

  5. 在导航窗格的“查看”菜单中选择“服务”。
  6. 在导航窗格中单击“Portal 桌面”旁的属性箭头。
  7. 桌面属性页出现在数据窗格中。

  8. 在桌面页,单击“显示配置文件编辑 XML”链接。
  9. display profile出现在文本窗口中。


    注意

    默认情况下,显示配置文件优先级被设置为关键字 user,表明目前显示配置文件为用户级显示配置文件。其它允许值为整型值,较小的数字代表较低的优先级。例如,1 比 2 优先级低。


  10. 进行更改并单击“保存”。

  11. 注意

    对全局、组织、子组织或角色级文档所做的更改会立即生效。对用户级文档所做的更改在用户注销并再次登录后生效。




上一页      目录      索引      下一页     


版权所有 2003 Sun Microsystems, Inc. 保留所有权利。