Develop a custom thread identity service

We can develop a custom thread identity service class by implementing the com.ibm.wsspi.kernel.security.thread.ThreadIdentityService interface provided in the Liberty server. The ThreadIdentityService interface is a Service Program Interface (SPI) that enables support to receive notifications of user identity switches.

  1. Create a custom thread identity service by implementing the ThreadIdentityService interface.
  2. Convert the implementation class into an OSGi service. We can do the conversion in either of two ways:

    1. Convert your ThreadIdentityService class into a Declarative Service (DS) component.

      See Declaring your services to OSGi Declarative Services.

    2. Write a new ThreadIdentityService class that is a DS component and delegate it to your ThreadIdentityService class. Register your ThreadIdentityService class directly in the Service Registry (SR) using the OSGi core APIs.

      See Working with the OSGi service registry.

  3. Package the custom thread identity service as an OSGi bundle and export the ThreadIdentityService service. For information on creating an OSGi bundle, see Create an OSGi service bundle.

  4. Create a feature manifest to include the OSGi bundle.

  5. After the feature is installed into the user product extension location, configure the server.xml file with the feature name.

      <featureManager>
       ... 
        <feature>usr:sampleThreadIdentityService-1.0</feature>
      </featureManager>