Implementing a Principal Name Provider

In some environments, the login mechanism returns different login names through the principal object. This leads to the effect that one physical user acts with different IPP logins and therefore with different personal worklists. The interface PrincipalNameProvider provides the option to return a more specific name for a given principal.

public interface PrincipalNameProvider
{
   public static final String PRP_PRINCIPAL_NAME_PROVIDER = PrincipalNameProvider.class
         .getName();

   /**
    * Provides the name for a given principal. Default implementation would be to return principal.getName().
    * It is possible to test for a certain implementation and use method of these implementation
    * in order to return a more specific name for the given principal.
    *
    * @param principal the principal
    * @return the name of the principal. Not allowed to be null.
    */
   public String getName(Principal principal);
}

Configure your custom implementation in this interface. By default the default implementation org.eclipse.stardust.engine.core.compatibility.spi.security.DefaultPrincipalNameProvider is added, which just returns the name of the provided principal via principal.getName(). Replace this default interface by the fully qualified class name of your custom implementation.