Program Exit Input Argument and Input XML Buffer Authentication Type
Program exits have a single interface consisting of a single input argument, which is an XML buffer. All program exits are passed to the XML buffer with the following format:
cim1265
Program exits have a single interface consisting of a single input argument, which is an XML buffer. All program exits are passed to the XML buffer with the following format:
<eTExitInvoke eTExitType={one of the exit types}> <{the objectclass of the object being processed}> <dn>{the full DN of the object}</dn> <name>{the name, that is, RDN value, of the object}</name> <{attribute type}>{attribute value}</{attribute type}> ... </{the objectclass of the object being processed}> <Authentication> <Type> </Type> <User> </User> <Password> </Password> </Authentication> </eTExitInvoke>
For example:
<eTExitInvoke eTExitType=PRE_ADD_ACCOUNT> <eTSDKAccount> <dn>eTSDKAccountName=test1, eTSDKAccountContainerName=SDK Accounts, eTSDKDirectoryName=Team1, dc=Dev</dn> <name>test1</name> <eTSDKCity>Renton</eTSDKCity> </eTSDKAccount> <Authentication> <Type>GLOBAL_USER</Type> <User>{the DN of the global user}</User> <Password>{the password of the global user}</Password} </Authentication> </eTExitInvoke>
For modify operations, the modify mode is specific in each tag. The possible modify modes are ADD, DELETE, and REPLACE. For example:
<eTExitInvoke eTExitType=PRE_MOIDFY_ACCOUNT> <eTSDKAccount> <dn>eTSDKAccountName=test1, eTSDKAccountContainerName=SDK Accounts, eTSDKDirectoryName=Team1, dc=Dev</dn> <name>test1</name> <eTSDKCity modify-mode="replace">Kirkland</eTSDKCity> <eTSDKDescription modify-mode="delete" Old description</eTSDKDescription> </eTSDKAccount> </eTExitInvoke>
The program exit parses this input argument to get the data it needs to perform its specific task.
If a program exit is defined to handle only a specific type of exit, it should check the eTExitType to make sure that it can handle that specific type. For example, if a program exit is designed to handle the exit type PRE_ADD_ACCOUNT, it should check eTExitType and should perform only its task, if the exit type is correct. If the exit type is not handled by the program exit, it should do nothing and should return a warning.
Input XML Buffer Authentication Type
Each input XML buffer may contain an optional authentication XML block. The format of the authentication XML block is always defined as follows.
<Authentication> <Type> </Type> <User> </User> <Password> </Password> </Authentication>
The data in the authentication XML block depends on the type of authentication defined for the program exit. The following are the possible authentication types:
- NONENo credentials are passed to the method being invoked. Thus, the input XML buffer does not contain an authentication block.
- GLOBAL_USERThe credentials of the currently logged on global user are passed to the program exit being invoked. The <User> tag contains the DN of the global user. The <Password> tag contains the password for that global user.The password is not encrypted.
- PROXYThe credentials of a specific global user are passed to the program exit being invoked. The <User> tag contains the DN of the specific global user. The <Password> tag contains the password for that global user.The password is not encrypted.
- OTHERIndicates that the <User> and <Password> tags are program-exit specific. The <User> and <Password> tags can be any free form text. It is up to the program exits to define what these fields mean.