wt.org.electronicIdentity.engines
Class LDAPFDACompliantSignatureEngine

java.lang.Object
  extended bywt.org.electronicIdentity.engines.LDAPFDACompliantSignatureEngine
All Implemented Interfaces:
SignatureEngine

public class LDAPFDACompliantSignatureEngine
extends Object
implements SignatureEngine

A signature engine which requires a username and password to be supplied. It verifies that the username and password belong to the currently logged in user. This signature engine is in compliance with FDA rule 21 CFR Part 11 section 11.200 which requires at least two distinct identification components for a signing. An LDAP-based directory service is used for authentication.

Note: the electronic signature feature is only supported when user authentication is done using an LDAP-based directory service. If a site is using a flat file or some other means of authentication, then they must provide their own signature engine implementation.

The wt.federation.org.directoryService property lists the names of the Info*Engine JNDI adapters that windchill uses to query one or more LDAP-based directory services for principals. The same services will be used for user authentication of electronic signatures. The following property is only needed in the wt.properties file if the LDAP-based directory service used for authentication is not one of the services identified by the wt.federation.org.directoryServices property.


Supported API: true

Extendable: true

See Also:
SignatureEngine

Field Summary
private static String configuredService
           
private static String EI_RB
           
private static String ENGINES_RB
           
private static String ORG_RB
           
private static String PASSWORD_FIELD
           
private static String USERNAME_FIELD
           
private static boolean verbose
           
 
Constructor Summary
LDAPFDACompliantSignatureEngine()
           
 
Method Summary
private  String getDn(String userName, String service)
           
 SigVariableInfo[] getVariableInfo()
          Get array of variables needed to validate a signature instance.
private  void validateSig(String service, String userDn, String userCredentials)
           
 void validateSig(WTPrincipalReference principal, Properties properties)
          Check if signature as defined by variables is valid for the given user.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

configuredService

private static String configuredService

verbose

private static boolean verbose

PASSWORD_FIELD

private static String PASSWORD_FIELD

USERNAME_FIELD

private static String USERNAME_FIELD

EI_RB

private static String EI_RB

ENGINES_RB

private static String ENGINES_RB

ORG_RB

private static String ORG_RB
Constructor Detail

LDAPFDACompliantSignatureEngine

public LDAPFDACompliantSignatureEngine()
Method Detail

getVariableInfo

public SigVariableInfo[] getVariableInfo()
Description copied from interface: SignatureEngine
Get array of variables needed to validate a signature instance. Typically used in generating user interfaces for users to submit information to validate their identity for sake of applying a signature.

Specified by:
getVariableInfo in interface SignatureEngine
Returns:
array of SigVariableInfo populated with user interface fields

validateSig

public void validateSig(WTPrincipalReference principal,
                        Properties properties)
                 throws SignatureInvalidException
Description copied from interface: SignatureEngine
Check if signature as defined by variables is valid for the given user.

Specified by:
validateSig in interface SignatureEngine
Parameters:
principal - user which the signature is being validated
properties - a property sheet with attributes needed for signature. Typically a cgi form data object which contains values from user for the SigVariableInfo objects displayed in user interface.
Throws:
SignatureInvalidException - when the variables are valid for a given user

validateSig

private void validateSig(String service,
                         String userDn,
                         String userCredentials)
                  throws SignatureInvalidException
Throws:
SignatureInvalidException

getDn

private String getDn(String userName,
                     String service)
              throws SignatureInvalidException
Throws:
SignatureInvalidException