使用 wsadmin 对联合存储库配置定制适配器

可以将 Jython 或 Jacl 脚本编制语言与 wsadmin 工具配合使用以便在联合存储库配置文件中定义定制适配器。

准备工作

关闭 WebSphere® Application Server 和 wsadmin 命令窗口。

有关此任务

使用以下步骤将定制适配器添加至任何联合存储库配置文件以及在此配置文件中定义的任何领域。

下列示例使用 SampleFileRepository 存储库作为定制存储库的标识。

注: 有关要用于本主题的命令的其他信息,请参阅 AdminTask 对象主题的 IdMgrRepositoryConfig 命令组。

过程

  1. 输入以下命令以启动 wsadmin 工具:
    wsadmin -conntype none
  2. 使用 createIdMgrCustomRepository 命令可添加定制存储库并指定适配器类。

    以下示例将定制存储库配置为使用 com.ibm.ws.wim.adapter.sample.SampleFileAdapter 类并将 SampleFileRepository 存储库设置为标识。

    使用 Jython:
    AdminTask.createIdMgrCustomRepository('-id SampleFileRepository
     -adapterClassName com.ibm.ws.wim.adapter.sample.SampleFileAdapter')
    使用 Jacl:
    createIdMgrCustomRepository {-id SampleFileRepository
     -adapterClassName com.ibm.ws.wim.adapter.sample.SampleFileAdapter
  3. 复制提供给 app_server_root/libvmmsampleadapter.jar 文件。
  4. 禁用公共存储库配置中的页面调度功能。
    updateIdMgrRepository 命令的 supportPaging 参数设置为 false 以禁用页面调度功能。
    注: 必须执行此步骤,因为样本适配器不支持页面调度。

    下列示例使用 SampleFileRepository 存储库作为定制存储库的标识。

    使用 Jython:
    AdminTask.updateIdMgrRepository('-id SampleFileRepository -supportPaging false')
    使用 Jacl:
    $AdminTask updateIdMgrRepository {-id SampleFileRepository -supportPaging false}
    注: 在样本存储库的配置完成之前,将显示警告。
  5. 对适配器添加必需的定制属性。
    重复使用 setIdMgrCustomProperty 命令来添加多个属性。 对每个属性使用此命令一次以便对配置添加多个属性。 必须使用名称参数对指定存储库添加定制属性。 例如,要添加定制属性 fileName,请输入以下命令。
    使用 Jython:
    AdminTask.setIdMgrCustomProperty('-id SampleFileRepository -name fileName 
    -value "c:\sampleFileRegistry.xml"')
    使用 Jacl:
    $AdminTask setIdMgrCustomProperty {-id SampleFileRepository -name fileName
    -value "c:\sampleFileRegistry.xml"}
  6. 对适配器配置添加基本条目。
    使用 addIdMgrRepositoryBaseEntry 命令对指定的存储库指定基本条目的名称。 例如:
    使用 Jython:
    AdminTask.addIdMgrRepositoryBaseEntry('-id SampleFileRepository -name
    o=sampleFileRepository')
    使用 Jacl:
    $AdminTask addIdMgrRepositoryBaseEntry {-id SampleFileRepository -name
    o=sampleFileRepository}
  7. 使用 addIdMgrRealmBaseEntry 命令将基本条目添加到域,这将使域与存储库链接:
    使用 Jython:
    AdminTask.addIdMgrRealmBaseEntry('-name defaultWIMFileBasedRealm -baseEntry o=sampleFileRepository')
    使用 Jacl:
    $AdminTask addIdMgrRealmBaseEntry {-name defaultWIMFileBasedRealm -baseEntry o=sampleFileRepository}
  8. 保存配置更改。
    输入下列命令以保存新配置并关闭 wsadmin 工具。
    使用 Jython:
    AdminConfig.save()
    exit
    使用 Jacl:
    $AdminConfig save
    exit
    以下示例显示了新修改的 wimconfig.xml 文件的完整文本:
    注: 联合存储库配置文件 wimconfig.xml位于 app_server_root/profiles/profile_name/config/cells/cell_name/wim/config 目录中。
    <!--
      Begin Copyright
    
      Licensed Materials - Property of IBM
    
      virtual member manager
    
      (C) Copyright IBM Corp. 2005 All Rights Reserved.
    
      US Government Users Restricted Rights - Use, duplication or 
      disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
    
      End Copyright
    -->
    <sdo:datagraph xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
    xmlns:config="https://www.ibm.com/websphere/wim
    /config" xmlns:sdo="commonj.sdo">
      <config:configurationProvider maxPagingResults="500" maxSearchResults="4500" 
    maxTotalPagingResults="1000" 
    pagedCacheTimeOut="900" pagingEntityObject="true" searchTimeOut="600000">
        <config:dynamicModel xsdFileName="wimdatagraph.xsd"/>
        <config:supportedEntityTypes defaultParent="o=defaultWIMFileBasedRealm" name="Group">
          <config:rdnProperties>cn</config:rdnProperties>
        </config:supportedEntityTypes>
        <config:supportedEntityTypes defaultParent="o=defaultWIMFileBasedRealm" name="OrgContainer">
          <config:rdnProperties>o</config:rdnProperties>
          <config:rdnProperties>ou</config:rdnProperties>
          <config:rdnProperties>dc</config:rdnProperties>
          <config:rdnProperties>cn</config:rdnProperties>
        </config:supportedEntityTypes>
        <config:supportedEntityTypes defaultParent="o=defaultWIMFileBasedRealm" name="PersonAccount">
          <config:rdnProperties>uid</config:rdnProperties>
        </config:supportedEntityTypes>
        <config:repositories xsi:type="config:FileRepositoryType" adapterClassName="com.ibm.
        ws.wim.adapter.file.was.FileAdapter" 
    id="InternalFileRepository" supportPaging="false" supportSorting="false" messageDigestAlgorithm="SHA-1">
          <config:baseEntries name="o=defaultWIMFileBasedRealm"/>
        </config:repositories>
        <config:repositories adapterClassName="com.ibm.ws.wim.adapter.sample.SampleFileAdapter" 
        id="SampleFileRepository">
          <config:CustomProperties name="fileName" value="c:\sampleFileRegistry.xml"/>
          <config:baseEntries name="o=sampleFileRepository"/>
        </config:repositories>
        <config:realmConfiguration defaultRealm="defaultWIMFileBasedRealm">
          <config:realms delimiter="@" name="defaultWIMFileBasedRealm" securityUse="active">
            <config:participatingBaseEntries name="o=defaultWIMFileBasedRealm"/>
            <config:participatingBaseEntries name="o=sampleFileRepository"/>
            <config:uniqueUserIdMapping propertyForInput="uniqueName" propertyForOutput="uniqueName"/>
            <config:userSecurityNameMapping propertyForInput="principalName" propertyForOutput="principalName"/>
            <config:userDisplayNameMapping propertyForInput="principalName" propertyForOutput="principalName"/>
            <config:uniqueGroupIdMapping propertyForInput="uniqueName" propertyForOutput="uniqueName"/>
            <config:groupSecurityNameMapping propertyForInput="cn" propertyForOutput="cn"/>
            <config:groupDisplayNameMapping propertyForInput="cn" propertyForOutput="cn"/>
          </config:realms>
        </config:realmConfiguration>
    </config:configurationProvider></sdo:datagraph>
  9. 重新启动应用程序服务器。