| Oracle Internet Directory Administrator's Guide Release 9.2 Part Number A96574-01  | 
  | 
This chapter describes how you can extend the capabilities of the Oracle directory server by using plug-ins developed by either Oracle Corporation or third-party vendors.
This chapter contains these topics:
Oracle Internet Directory supports a directory server plug-in a PL/SQL package. It can add the following kinds of functionality to the directory server, to mention just a few:
On startup, the directory server loads your plug-in configuration and library. Then, when it processes requests, it calls your plug-in functions whenever the specified event takes place.

This section describes the operation-based plug-ins that the Oracle Internet Directory plug-in framework supports. These plug-ins execute before, after, or in addition to normal directory server operations.
To enable the directory server to call a plug-in at the right moment, you must register the plug-in with the directory server. Do this by creating an entry for the plug-in under cn=plugin,cn=subconfigsubentry.
A plug-in must have orclPluginConfig as one of its object classes. This is a structural object class, and its super class is top. Table 26-2 lists and describes its attributes.
| Attribute Name | Attribute Value | Mandatory | Optional | 
|---|---|---|---|
|  
 Cn  | 
 
 Plug-in entry name  | 
 
 X  | 
|
|  
 orclPluginName  | 
 
 Plug-in package name  | 
 
 X  | 
|
|  
 orclPluginType  | 
 
 One of the following values: operational attribute password_policy syntax matchingrule See Also: The chapter about the Oracle Internet Directory server plug-in framework in Oracle Internet Directory Application Developer's Guide  | 
 
 X  | 
|
|  
 orclPluginKind  | 
 
 PL/SQL  | 
 
 X  | 
|
|  
 orclPluginEnable  | 
 
 1 = enable  | 
 
 X  | 
|
|  
 orclPluginVersion  | 
 
 Supported plug-in version number  | 
 
 X  | 
|
|  
 orclPluginShareLibLocation  | 
 
 File location of the dynamic linking library. If this value is not present, then Oracle Internet Directory server assumes the plug-in language is PL/SQL.  | 
 
 X  | 
|
|  
 orclPluginLDAPOperation  | 
 
 One of the following values: ldapcompare ldapmodify ldapbind ldapadd ldapdelete ldapsearch  | 
 
 X  | 
|
|  
 orclPluginTiming  | 
 
 One of the following values: pre when post  | 
 
 X  | 
|
|  
 orclPluginIsReplace  | 
 
 For WHEN timing plug-in only  | 
 
 X  | 
|
|  
 orclPluginSubscriberDNList  | 
 
 A semicolon separated DN list that controls if the plug-in takes effect. If the target DN of an LDAP operation is included in the list, then the plug-in is invoked.  | 
 
 X  | 
Plug-ins must be added to Oracle Internet Directory server so that the server is aware of additional operations that must be performed at the correct time.
When the plug-in successfully compiles against the Oracle Internet Directory backend database, create a new entry and place it under cn=plugin,cn=subconfigsubentry.
In the following examples, an entry is created for an operation-based plug-in called my_plugin1. The LDIF file, my_ldif_file.ldif, is as follows:
The following is an example LDIF file to create such an object:
cn=when_comp,cn=plugin,cn=subconfigsubentry objectclass=orclPluginConfig objectclass=top orclPluginName=my_plugin1 orclPluginType=operational orclPluginTiming=when orclPluginLDAPOperation=ldapcompare orclPluginEnable=1 orclPluginVersion=1.0.1 orclPluginIsReplace=1 cn=when_comp orclPluginKind=PLSQL orclPluginSubscriberDNList=dc=COM,c=us;dc=us,dc=oracle,dc=com;dc=org,dc=us;
o=IMC,c=US
cn=post_mod_plugin, cn=plugin,cn=subconfigsubentry objectclass=orclPluginConfig objectclass=top orclPluginName=my_plugin1 orclPluginType=operational orclPluginTiming=post orclPluginLDAPOperation=ldapmodify orclPluginEnable=1 orclPluginVersion=1.0.1 cn=post_mod_plugin orclPluginKind=PLSQL
Add this file to the directory with the following command:
ldapadd -p 389 -h myhost -D binddn -w password -f my_ldif_file.ldif
When you have added this entry to the directory, the directory server validates the plug-in by quickly executing it and checking for compilation or access privilege errors. It then gathers more information about this plug-in--such as timing and the type of LDAP operation related to the plug-in.
  | 
![]() Copyright © 1999, 2002 Oracle Corporation. All Rights Reserved.  | 
  |