ForkJoin Plug-In Understanding the General Purpose Plug-Ins

Understanding Oracle Virtual Directory Plug-Ins 4-7 ■ Left Outer Join: Returns all the entries in the primary adapter after joining with corresponding entries in secondary adapter Standard Join, and returns entries from the secondary adapter that satisfy the join condition and which have a corresponding match in primary adapter. This is the equivalent to Left Outer Join in database terminology. ■ Full Outer Join: Returns all the entries in the primary adapter after joining with corresponding entries in secondary adapter Standard Join; returns entries from the secondary adapter that satisfy the join condition and which have a corresponding match in primary adapter Left Outer Join; and returns entries from the secondary adapter that satisfy the search filter but do not have a matching entry in primary adapter. This is the equivalent to Left Outer Join + Right Outer Join in database terminology.

4.2.4.2 Example ForkJoin Plug-In Deployment

This section provides an example ForkJoin plug-in deployment. The following data resides in the primary adapter and secondary adapter. The primary adapter namespace is dc=primary and the secondary adapter namespace is dc=secondary. Note: For conditional joins when Full Outer Join is configured, the entries in secondary adapter are mapped to entries in primary adapter without considering the filter in join condition. Data in Primary Adapter Data in Secondary Adapter dn: cn=Rock, dc=primary objectclass: inetorgperson cn: Rock sn: Anne givenname: Anne rock telephonenumber: 54300 dn: cn=Rock, dc=secondary objectclass: inetorgperson cn: Rock sn: Anne title: Manager dn: cn=Sandy, dc=primary objectclass: inetorgperson cn: Sandy sn: Ketty manager: cn=Rock, dc=primary telephonenumber: 54301 dn: cn=Sandy, dc=secondary objectclass: inetorgperson cn: Sandy sn: Ketty title: SMTS dn: cn=Rivry,dc=primary objectclass: inetorgperson cn: Rivry sn: Rod title: Trainee manager: cn=Rock, dc=secondary telephonenumber: 54303 description: Trainee for dept 543 departmentNumber: 543 dn: cn=Rivry,dc=secondary objectclass: inetorgperson cn: Rivry sn: Rod title: Trainee dn: cn=Woods,dc=primary objectclass: inetorgperson cn: Woods sn: Tent description: User with no title dn: cn=Mounty,dc=secondary objectclass: inetorgperson cn: Mounty sn: Ret title: MTS - dept_sec 4-8 Oracle Fusion Middleware Administrators Guide for Oracle Virtual Directory The Join Condition is cn=cn and the SecondaryOnlyAttributes parameter is set to title. An ldapsearch with a subtree scope and filter of |title=esn=e is performed against the Join View Adapter. The following are the search results for each type of JoinPolicy: Standard Join: cn=Rock,dc=Join sn=Anne cn=Rock title=Manager cn=Sandy,dc=Join sn=Ketty cn=Sandy title=SMTS cn=Woods,dc=Join sn=Tent cn=Woods Left Outer Join: cn=Rock,dc=Join sn=Anne cn=Rock title=Manager cn=Sandy,dc=Join sn=Ketty cn=Sandy title=SMTS cn=Woods,dc=Join sn=Tent cn=Woods cn=Rivry,dc=Join sn=Rod cn=Rivry title=Trainee Full Outer Join: cn=Rock,dc=Join sn=Anne cn=Rock title=Manager cn=Sandy,dc=Join sn=Ketty cn=Sandy title=SMTS cn=Woods,dc=Join sn=Tent cn=Woods cn=Rivry,dc=Join sn=Rod cn=Rivry Understanding Oracle Virtual Directory Plug-Ins 4-9 title=Trainee cn=Mounty,dc=Join sn=Ret cn=Mounty title=MTS - dept_sec

4.2.5 VirtualMemberof Plug-In

The VirtualMemberof plug-in adds the memberof attribute to person entries. The values of this memberof attribute are the DNs of any groups the person entry belongs to. The VirtualMemberof plug-in is useful when applications want to see group membership, but do not want to perform a secondary search for the groups.

4.2.5.1 Configuration Parameters

The VirtualMemberof plug-in has the following configuration parameters: searchBase The DN of the base to search for groups containing person entries. explicitrequestonly True or False: If set to True, the memberof attribute will be added to the entry only if it is explicitly requested as a returned attribute. The default value is True. adapterName List of adapters containing group entries. This parameter helps minimize the scope of the search for groups.

4.2.6 VirtualAttribute Plug-In

The VirtualAttribute plug-in enables you to reuse attribute data in multiple attributes without deploying a mapping. For example, when a new application requires a persons full name to be used in their display; but instead of looking for cn, the application wants to use the displayname attribute—which does not exist in the adapter data. Using the VirtualAttribute plug-in, you can map displayname to the value of cn and have the cn attribute remain available for other applications that are looking for it. If the displayname attribute already exists in the adapter data, you can specify whether to add the values of cn to the existing values of displayname or to replace the values of displayname with the values of cn. In addition to adding and replacing attribute values, you can also use the VirtualAttribute plug-in to ■ Create an attribute on-the-fly by using other attribute and literal values. ■ Perform the functionality of ConditionalPublish mapping. That is, using the RemoveAttributes configuration parameter, you can identify attributes to virtually remove from entries before they are returned to the client.

4.2.6.1 Configuration Parameters

The VirtualAttribute plug-in has the following configuration parameters: Note: Constant values can be specified for the attributes that are added or replaced by the VirtualAttribute plug-in. 4-10 Oracle Fusion Middleware Administrators Guide for Oracle Virtual Directory ContainerDN An optional parameter, ContainerDN identifies the containers the VirtualAttribute plug-in applies to. The VirtualAttribute plug-in is applicable for all entries under the containerDN which match the filter specified by the matchFilter parameter. This parameter can be repeated to specify multiple containerDNs. This parameter also restricts the VirtualAttribute plug-in to a certain branch within data exposed by the adapter. The default setting is , or DSE—that is, if you do not set the ContainerDN parameter, the VirtualAttribute plug-in searches the entire directory tree. MatchFilter An optional parameter, MatchFilter identifies the entries the VirtualAttribute plug-in applies to. The VirtualAttribute plug-in is applicable for all entries under containerDN that match the filter specified by the MatchFilter parameter. If you do not set the MatchFilter parameter, the VirtualAttribute plug-in is applicable for all the entries under the DNs identified by ContainerDN parameter. AddAttribute A list of attributes to add to the entry and a value to assign to these virtual attributes. If an attribute identified by the AddAttribute parameter already exists in the entry, the VirtualAttribute plug-in appends the specified values to the existing set of values. The value can be a constant, another attribute, or a combination of attribute values and constants. You can set the AddAttribute parameter multiple times for the VirtualAttribute plug-in. The value you set for the AddAttribute parameter must be mutually exclusive, that is, different, from the ReplaceAttribute. For example: ■ To add the values of the cn attribute to uid and displayName, set the value of the AddAttribute parameter to: uid=displayName=cn ■ To add the constant value Acme to the companyName attribute, set the value for AddAttribute parameter to: companyName=Acme ■ To add a combination of cn, sn, and dc values to the member attribute, set the AddAttribute parameter value to: member={cn=cn, sn=sn, dc=oracle, dc=com} ReplaceAttribute A list of attributes to add to the entry and a value to assign to these virtual attributes. If an attribute identified by the ReplaceAttribute parameter already exists in the entry, the VirtualAttribute plug-in replaces them using the value you supply. The value can be a constant, another attribute, or a combination of attribute values and constants. You can set the ReplaceAttribute parameter multiple times for the VirtualAttribute plug-in. The value you set for the ReplaceAttribute parameter must be mutually exclusive, that is, different, from the AddAttribute. For example: Note: At a minimum, you must set either the AddAttribute or ReplaceAttribute configuration parameter. Note: The curly braces {} are important.