+

Search Tips   |   Advanced Search

Configure custom adapters for federated repositories using wsadmin

Use the following steps to add a custom adapter to any federated repositories configuration file and to any realm defined within the configuration file.

The following examples use the SampleFileRepository repository as the identifier for the custom repository.

For additional information about the commands to use for this topic, see the IdMgrRepositoryConfig .topic.


Tasks

  1. Start wsadmin:

      wsadmin -conntype none

  2. Use the createIdMgrCustomRepository command to add a custom repository and specify the adapter class.

    The following example configures a custom repository to use the com.ibm.ws.wim.adapter.sample.SampleFileAdapter class and sets the SampleFileRepository repository as the identifier.

    Use Jython:

    AdminTask.createIdMgrCustomRepository('-id SampleFileRepository
     -adapterClassName com.ibm.ws.wim.adapter.sample.SampleFileAdapter')
    

    Use Jacl:

    createIdMgrCustomRepository {-id SampleFileRepository
     -adapterClassName com.ibm.ws.wim.adapter.sample.SampleFileAdapter}
    

  3. Copy the vmmsampleadapter.jar file provided to app_server_root/lib.

  4. Disable paging in the common repository configuration. Set the supportPaging parameter for the updateIdMgrRepository command to false to disable paging.

    We must perform this step because the sample adapter does not support paging.

    The following examples use the SampleFileRepository repository as the identifier for the custom repository.

    Use Jython:

    AdminTask.updateIdMgrRepository('-id SampleFileRepository -supportPaging false')
    

    Use Jacl:

    $AdminTask updateIdMgrRepository {-id SampleFileRepository -supportPaging
    false}
    

    A warning will appear until the configuration of the sample repository is complete.

  5. Add the necessary custom properties for the adapter. Use the setIdMgrCustomProperty command repeatedly to add multiple properties. Use this command once per property to add multiple properties to the configuration. We must use both the name and value parameters to add the custom property for the specified repository. For example, to add a custom property of fileName, enter.

    Use Jython:

    AdminTask.setIdMgrCustomProperty('-id SampleFileRepository -name fileName 
    -value "c:\sampleFileRegistry.xml"')
    

    Use Jacl:

    $AdminTask setIdMgrCustomProperty {-id SampleFileRepository -name fileName
    -value "c:\sampleFileRegistry.xml"}
    

  6. Add a base entry to the adapter configuration. Use the addIdMgrRepositoryBaseEntry command to specify the name of the base entry for the specified repository. For example:

    Use Jython:

    AdminTask.addIdMgrRepositoryBaseEntry('-id SampleFileRepository -name
    o=sampleFileRepository')
    

    Use Jacl:

    $AdminTask addIdMgrRepositoryBaseEntry {-id SampleFileRepository -name
    o=sampleFileRepository}
    

  7. Use the addIdMgrRealmBaseEntry command to add the base entry to the realm, which will link the realm with the repository:

    Use Jython:

    AdminTask.addIdMgrRealmBaseEntry('-name defaultWIMFileBasedRealm -baseEntry o=sampleFileRepository')
    

    Use Jacl:

    $AdminTask addIdMgrRealmBaseEntry {-name defaultWIMFileBasedRealm -baseEntry o=sampleFileRepository}
    

  8. Save the configuration changes. Enter the following commands to save the new configuration and close the wsadmin tool.

    Use Jython:

    AdminConfig.save()
    exit
    

    Use Jacl:

    $AdminConfig save
    exit
    

    The following example displays the complete text of the newly-revised wimconfig.xml file:

    The federated repositories configuration file, wimconfig.xml, is located in the app_server_root/profiles/profile/config/cells/cell/wim/config directory.

    <!--
      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="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:config="http://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. Restart the application server.

Related tasks:

  • Add a custom repository to a federated repositories configuration

    Related reference:

  • Sample custom adapters for federated repositories examples
  • IdMgrRepositoryConfig