com.netscape.cms.publish.mappers
Class LdapEnhancedMap

java.lang.Object
  extended by com.netscape.cms.publish.mappers.LdapEnhancedMap
All Implemented Interfaces:
IExtendedPluginInfo, ILdapMapper, ILdapPlugin

public class LdapEnhancedMap
extends java.lang.Object
implements ILdapMapper, IExtendedPluginInfo

Maps a request to an entry in the LDAP server. Takes a dnPattern to form the baseDN from the request attributes and certificate subject name. Does a base search for the entry in the directory to publish the cert or crl. The restriction of this mapper is that the ldap dn components must be part of certificate subject name or request attributes or constant. The difference of this mapper and LdapSimpleMap is that if the ldap entry is not found, it has the option to create the ldap entry given the dn and attributes formulated.

Version:
$Revision: 1211 $, $Date: 2010-08-18 10:15:37 -0700 (Wed, 18 Aug 2010) $

Field Summary
protected static int DEFAULT_ATTRNUM
           
static java.lang.String DEFAULT_DNPATTERN
           
protected  java.lang.String[] mCertAttrs
           
protected  IConfigStore mConfig
           
protected  boolean mCreateEntry
           
protected  java.lang.String mDnPattern
           
protected  java.lang.String[] mLdapNames
           
protected  java.lang.String[] mLdapPatterns
           
protected  java.lang.String[] mLdapValues
           
protected  MapDNPattern mPattern
           
protected  com.netscape.cms.publish.mappers.AVAPattern[] mPatterns
           
protected  java.lang.String[] mReqAttrs
           
protected static java.lang.String PROP_ATTR_NAME
           
protected static java.lang.String PROP_ATTR_PATTERN
           
protected static java.lang.String PROP_ATTRNUM
           
protected static java.lang.String PROP_CREATE
           
protected static java.lang.String PROP_DNPATTERN
           
protected static java.lang.String PROP_OBJCLASS
           
 
Fields inherited from interface com.netscape.certsrv.base.IExtendedPluginInfo
HELP_TEXT, HELP_TOKEN
 
Constructor Summary
LdapEnhancedMap()
          Default constructor, initialization must follow.
 
Method Summary
 IConfigStore getConfigStore()
          implementation for extended ILdapPlugin interface method
 java.util.Vector getDefaultParams()
          Returns the initial default parameters.
 java.lang.String getDescription()
          Returns the description of this mapper.
 java.lang.String[] getExtendedPluginInfo(java.util.Locale locale)
          This method returns an array of strings.
 java.lang.String getImplName()
          Returns implementation name.
 java.util.Vector getInstanceParams()
          Returns the current instance parameters.
 void init(IConfigStore config)
          for initializing from config store.
protected  void init(java.lang.String dnPattern)
          common initialization routine.
 java.lang.String map(netscape.ldap.LDAPConnection conn, IRequest req, java.lang.Object obj)
          Maps an X500 subject name to an LDAP entry.
 java.lang.String map(netscape.ldap.LDAPConnection conn, java.lang.Object obj)
          Maps an X500 subject name to an LDAP entry.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mPattern

protected MapDNPattern mPattern

mReqAttrs

protected java.lang.String[] mReqAttrs

mCertAttrs

protected java.lang.String[] mCertAttrs

mLdapValues

protected java.lang.String[] mLdapValues

PROP_DNPATTERN

protected static final java.lang.String PROP_DNPATTERN
See Also:
Constant Field Values

PROP_CREATE

protected static final java.lang.String PROP_CREATE
See Also:
Constant Field Values

PROP_OBJCLASS

protected static final java.lang.String PROP_OBJCLASS
See Also:
Constant Field Values

PROP_ATTRNUM

protected static final java.lang.String PROP_ATTRNUM
See Also:
Constant Field Values

PROP_ATTR_NAME

protected static final java.lang.String PROP_ATTR_NAME
See Also:
Constant Field Values

PROP_ATTR_PATTERN

protected static final java.lang.String PROP_ATTR_PATTERN
See Also:
Constant Field Values

mDnPattern

protected java.lang.String mDnPattern

mCreateEntry

protected boolean mCreateEntry

mLdapNames

protected java.lang.String[] mLdapNames

mLdapPatterns

protected java.lang.String[] mLdapPatterns

DEFAULT_DNPATTERN

public static final java.lang.String DEFAULT_DNPATTERN
See Also:
Constant Field Values

DEFAULT_ATTRNUM

protected static final int DEFAULT_ATTRNUM
See Also:
Constant Field Values

mConfig

protected IConfigStore mConfig

mPatterns

protected com.netscape.cms.publish.mappers.AVAPattern[] mPatterns
Constructor Detail

LdapEnhancedMap

public LdapEnhancedMap()
Default constructor, initialization must follow.

Method Detail

init

protected void init(java.lang.String dnPattern)
             throws EBaseException
common initialization routine.

Throws:
EBaseException

init

public void init(IConfigStore config)
          throws EBaseException
for initializing from config store. implementation for extended ILdapPlugin interface method

Specified by:
init in interface ILdapPlugin
Parameters:
config - the configuration store to initialize from.
Throws:
ELdapException - initialization failed due to Ldap error.
EBaseException - initialization failed.

getConfigStore

public IConfigStore getConfigStore()
implementation for extended ILdapPlugin interface method

Specified by:
getConfigStore in interface ILdapPlugin

getImplName

public java.lang.String getImplName()
Description copied from interface: ILdapMapper
Returns implementation name.

Specified by:
getImplName in interface ILdapMapper

getDescription

public java.lang.String getDescription()
Description copied from interface: ILdapMapper
Returns the description of this mapper.

Specified by:
getDescription in interface ILdapMapper

getDefaultParams

public java.util.Vector getDefaultParams()
Description copied from interface: ILdapMapper
Returns the initial default parameters.

Specified by:
getDefaultParams in interface ILdapMapper

getInstanceParams

public java.util.Vector getInstanceParams()
Description copied from interface: ILdapMapper
Returns the current instance parameters.

Specified by:
getInstanceParams in interface ILdapMapper

map

public java.lang.String map(netscape.ldap.LDAPConnection conn,
                            java.lang.Object obj)
                     throws ELdapException
Maps an X500 subject name to an LDAP entry. Uses DN pattern to form a DN for an LDAP base search.

Specified by:
map in interface ILdapMapper
Parameters:
conn - the LDAP connection.
obj - the object to map.
Returns:
dn indicates whether a mapping was successful
Throws:
ELdapException - if any LDAP exceptions occurred.

map

public java.lang.String map(netscape.ldap.LDAPConnection conn,
                            IRequest req,
                            java.lang.Object obj)
                     throws ELdapException
Maps an X500 subject name to an LDAP entry. Uses DN pattern to form a DN for an LDAP base search.

Specified by:
map in interface ILdapMapper
Parameters:
conn - the LDAP connection.
req - the request to map.
obj - the object to map.
Returns:
dn indicates whether a mapping was successful
Throws:
ELdapException - if any LDAP exceptions occurred.

getExtendedPluginInfo

public java.lang.String[] getExtendedPluginInfo(java.util.Locale locale)
Description copied from interface: IExtendedPluginInfo
This method returns an array of strings. Each element of the array represents a configurable parameter, or some other meta-info (such as help-token) there is an entry indexed on that parameter name ;[,required];;... Where: type_info is either 'string', 'number', 'boolean', 'password' or 'choice(ch1,ch2,ch3,...)' If the marker 'required' is included after the type_info, the parameter will has some visually distinctive marking in the UI. 'description' is a short sentence describing the parameter 'choice' is rendered as a drop-down list. The first parameter in the list will be activated by default 'boolean' is rendered as a checkbox. The resulting parameter will be either 'true' or 'false' 'string' allows any characters 'number' allows only numbers 'password' is rendered as a password field (the characters are replaced with *'s when being types. This parameter is not passed through to the plugin. It is instead inserted directly into the password cache keyed on the instance name. The value of the parameter 'bindPWPrompt' (see example below) is set to the key. In addition to the configurable parameters, the following magic parameters may be defined: HELP_TOKEN;helptoken - a pointer to the online manual section for this plugin HELP_TEXT;helptext - a general help string describing the plugin For example: "username;string;The username you wish to login as" "bindPWPrompt;password;Enter password to bind as above user with" "algorithm;choice(RSA,DSA);Which algorithm do you want to use" "enable;boolean;Do you want to run this plugin" "port;number;Which port number do you want to use"

Specified by:
getExtendedPluginInfo in interface IExtendedPluginInfo