About Server Plug-Ins

A server plug-in is a third-party component added to ActivID CMS to support functionality on the server side. ActivID CMS calls enrollment plug-ins each time a user attribute is set or retrieved (this corresponds to when calls are made to the setAttributes and getAttributes functions of the Generic Plug-In SPI A Service Provider Interface (SPI) consists of a set of constant definitions and method declarations without implementations and intended to be called or used in a pre-determined generic manner with a set of outputs that meet pre-determined abstract rules and expectations.).

The setAttributes and getAttributes functions use linkParameters, a list of attributes needed by the plug-in to match the identifier of the user inside ActivID CMS with the identifier of the user in the external repository.

Important: If you have configured ActivID CMS to work with more than one type of directory, you may need to specify the directory type by adding a suffix with the directory short name to the .link property key (for example, <plugin name>.link.msft-ad). For details about the directory short names, see Configuring the Generic Plugin.

The attributes are managed by the ActivID CMS portal in the same way as standard LDAP user attributes (attributes that can be displayed in a lookup, updated during issuance, or printed during issuance). For enrollment plug-in attributes, the naming convention is: plug_in_name:attribute_name (for example, GenericPluginSample1:MyUserID).

Defining a Generic Plug-In

Generic plug-ins are implemented using Java. To develop a generic server plug-in, you must implement all the methods of the generic server plug-in interface as described.

  1. Write the Java code to implement the server plug-in. See Coding a Generic Server Plug-In. Then incorporate the server plug-in code into the appropriate .jar file.

  2. Describe the plug-in attributes in the appropriate .properties file.

Compiling a Generic Server Plug-In

To compile the generic server plug-in, the following external .jar files must be added to the project:

  • aims-spi.jar

  • ac-interfaces.jar

  • slf4j-api-2.0.12.jar

These files are located in the cms_install_dir\aims.war\WEB-INF\lib directory, where cms_install_dir represents the installation directory of ActivID CMS.

Important: The cms_portal directory, used in previous versions of ActivID CMS, no longer exists. With the migration to WildFly in ActivID CMS 6.0, that directory is now called aims.war.
Note: ActivID CMS includes the log4j bridge (log4j-over-slf4j-2.0.12.jar) on the server side, which means that users can use either slf4j or log4j in their code. However, the <appender> packages must be added to the logback.xml file to enable logging for the plugin package.

Deploying a Generic Server Plug-In

To deploy a generic server plug-in, complete the following steps.

  1. Export GenericPlugin as a .jar file (GenericPlugin.jar).

  2. Stop the ActivID CMS server.

  3. Copy the .jar file into the %PROGRAMDATA%\HID Global\Credential Management System\custom.war\WEB-INF\lib directory on the ActivID CMS server.

  4. Add the package containing the plug-in to the class path for ActivID CMS.

  5. Configure the generic plug-in using the %PROGRAMDATA%\HID Global\Credential Management System\Shared Files\generic_plugin.properties file.

  6. Restart the ActivID CMS server.

Coding a Generic Server Plug-In

A server plug-in class must implement the following Java interface:

Copy
com.activcard.aims.plugin.generic.GenericPluginInterface