summaryrefslogtreecommitdiffstats
path: root/pki/base/common/src/com/netscape/cms/publish/mappers
diff options
context:
space:
mode:
authorAde Lee <alee@redhat.com>2011-12-07 16:58:12 -0500
committerAde Lee <alee@redhat.com>2011-12-07 16:58:12 -0500
commit32150d3ee32f8ac27118af7c792794b538c78a2f (patch)
tree52dd96f664a6fa51be25b28b6f10adc5f2c9f660 /pki/base/common/src/com/netscape/cms/publish/mappers
parentf05d58a46795553beb8881039cc922974b40db34 (diff)
downloadpki-32150d3ee32f8ac27118af7c792794b538c78a2f.tar.gz
pki-32150d3ee32f8ac27118af7c792794b538c78a2f.tar.xz
pki-32150d3ee32f8ac27118af7c792794b538c78a2f.zip
Formatting
Formatted project according to eclipse project settings
Diffstat (limited to 'pki/base/common/src/com/netscape/cms/publish/mappers')
-rw-r--r--pki/base/common/src/com/netscape/cms/publish/mappers/AVAPattern.java334
-rw-r--r--pki/base/common/src/com/netscape/cms/publish/mappers/LdapCaSimpleMap.java253
-rw-r--r--pki/base/common/src/com/netscape/cms/publish/mappers/LdapCertCompsMap.java99
-rw-r--r--pki/base/common/src/com/netscape/cms/publish/mappers/LdapCertExactMap.java104
-rw-r--r--pki/base/common/src/com/netscape/cms/publish/mappers/LdapCertSubjMap.java185
-rw-r--r--pki/base/common/src/com/netscape/cms/publish/mappers/LdapCrlIssuerCompsMap.java79
-rw-r--r--pki/base/common/src/com/netscape/cms/publish/mappers/LdapDNCompsMap.java246
-rw-r--r--pki/base/common/src/com/netscape/cms/publish/mappers/LdapEnhancedMap.java458
-rw-r--r--pki/base/common/src/com/netscape/cms/publish/mappers/LdapSimpleMap.java211
-rw-r--r--pki/base/common/src/com/netscape/cms/publish/mappers/MapAVAPattern.java470
-rw-r--r--pki/base/common/src/com/netscape/cms/publish/mappers/MapDNPattern.java91
-rw-r--r--pki/base/common/src/com/netscape/cms/publish/mappers/MapRDNPattern.java106
-rw-r--r--pki/base/common/src/com/netscape/cms/publish/mappers/NoMap.java35
13 files changed, 1282 insertions, 1389 deletions
diff --git a/pki/base/common/src/com/netscape/cms/publish/mappers/AVAPattern.java b/pki/base/common/src/com/netscape/cms/publish/mappers/AVAPattern.java
index 9f337cbb4..b3305d4d8 100644
--- a/pki/base/common/src/com/netscape/cms/publish/mappers/AVAPattern.java
+++ b/pki/base/common/src/com/netscape/cms/publish/mappers/AVAPattern.java
@@ -20,7 +20,6 @@
package com.netscape.cms.publish.mappers;
-
///////////////////////
// import statements //
///////////////////////
@@ -48,24 +47,24 @@ import com.netscape.certsrv.ldap.ELdapException;
import com.netscape.certsrv.publish.ECompSyntaxErr;
import com.netscape.certsrv.request.IRequest;
-
//////////////////////
// class definition //
//////////////////////
/**
- * avaPattern is a string representing an ldap
- * attribute formulated from the certificate
- * subject name, extension or request attributes.
+ * avaPattern is a string representing an ldap attribute formulated from the
+ * certificate subject name, extension or request attributes.
* <p>
*
- * The syntax is
+ * The syntax is
+ *
* <pre>
* avaPattern := constant-value |
* "$subj" "." attrName [ "." attrNumber ] |
* "$req" "." [ prefix .] attrName [ "." attrNumber ] |
- * "$ext" "." extName [ "." nameType ] [ "." attrNumber ]
+ * "$ext" "." extName [ "." nameType ] [ "." attrNumber ]
* </pre>
+ *
* <pre>
* Example: <i>$ext.SubjectAlternativeName.RFC822Name.1</i>
* cert subjectAltName is rfc822Name: jjames@mcom.com
@@ -76,15 +75,16 @@ import com.netscape.certsrv.request.IRequest;
* The first rfc822name value in the subjAltName extension. <br>
* <p>
* </pre>
- * If a request attribute or subject DN component does not exist,
- * the attribute is skipped.
- *
+ *
+ * If a request attribute or subject DN component does not exist, the attribute
+ * is skipped.
+ *
* @version $Revision$, $Date$
*/
class AVAPattern {
- ////////////////
+ // //////////////
// parameters //
- ////////////////
+ // //////////////
/* the value type of the dn component */
public static final String TYPE_REQ = "$req";
@@ -92,37 +92,31 @@ class AVAPattern {
public static final String TYPE_EXT = "$ext";
public static final String TYPE_CONSTANT = "constant";
- public static final String[] GENERAL_NAME_TYPE = { "ANY",
- "RFC822Name",
- "DNSName",
- "X400Name",
- "DIRECTORYName",
- "EDIName",
- "URIName",
- "IPAddress",
- "OIDName"};
+ public static final String[] GENERAL_NAME_TYPE = { "ANY", "RFC822Name",
+ "DNSName", "X400Name", "DIRECTORYName", "EDIName", "URIName",
+ "IPAddress", "OIDName" };
private static final char[] endChars = new char[] { '+', ',' };
- private static final LdapV3DNStrConverter mLdapDNStrConverter =
- new LdapV3DNStrConverter();
+ private static final LdapV3DNStrConverter mLdapDNStrConverter = new LdapV3DNStrConverter();
- /* the list of request attributes needed by this AVA */
+ /* the list of request attributes needed by this AVA */
protected String[] mReqAttrs = null;
- /* the list of cert attributes needed by this AVA*/
+ /* the list of cert attributes needed by this AVA */
protected String[] mCertAttrs = null;
/* value type */
protected String mType = null;
- /* value - could be name of a request attribute or
- * cert subject attribute or extension name.
+ /*
+ * value - could be name of a request attribute or cert subject attribute or
+ * extension name.
*/
protected String mValue = null;
- /* value type - general name type of an
- * extension attribute if any.
+ /*
+ * value type - general name type of an extension attribute if any.
*/
protected String mGNType = null;
@@ -134,107 +128,108 @@ class AVAPattern {
protected String mTestDN = null;
- /////////////
+ // ///////////
// methods //
- /////////////
+ // ///////////
- public AVAPattern(String component)
- throws ELdapException {
+ public AVAPattern(String component) throws ELdapException {
if (component == null || component.length() == 0) {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", component));
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX", component));
}
parse(new PushbackReader(new StringReader(component)));
}
- public AVAPattern(PushbackReader in)
- throws ELdapException {
+ public AVAPattern(PushbackReader in) throws ELdapException {
parse(in);
}
- private void parse(PushbackReader in)
- throws ELdapException {
+ private void parse(PushbackReader in) throws ELdapException {
int c;
// skip spaces
- //System.out.println("============ AVAPattern Begin ===========");
- //System.out.println("skip spaces");
+ // System.out.println("============ AVAPattern Begin ===========");
+ // System.out.println("skip spaces");
try {
- while ((c = in.read()) == ' ' || c == '\t') {//System.out.println("spaces read "+(char)c);
+ while ((c = in.read()) == ' ' || c == '\t') {// System.out.println("spaces read "+(char)c);
;
}
} catch (IOException e) {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", "All blank"));
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX", "All blank"));
}
- if (c == -1) {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", "All blank"));
+ if (c == -1) {
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX", "All blank"));
}
if (c == '$') {
- // check for $subj $ext or $req
+ // check for $subj $ext or $req
try {
c = in.read();
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
if (c == -1) {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "expecting $subj $ext or $req in ava pattern"));
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "expecting $subj $ext or $req in ava pattern"));
}
if (c == 'r') {
try {
- if (in.read() != 'e' ||
- in.read() != 'q' ||
- in.read() != '.') {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "expecting $req in ava pattern"));
+ if (in.read() != 'e' || in.read() != 'q'
+ || in.read() != '.') {
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "expecting $req in ava pattern"));
}
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
mType = TYPE_REQ;
- //System.out.println("---- mtype $req");
+ // System.out.println("---- mtype $req");
} else if (c == 's') {
try {
- if (in.read() != 'u' ||
- in.read() != 'b' ||
- in.read() != 'j' ||
- in.read() != '.') {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "expecting $subj in ava pattern"));
+ if (in.read() != 'u' || in.read() != 'b'
+ || in.read() != 'j' || in.read() != '.') {
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "expecting $subj in ava pattern"));
}
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
mType = TYPE_SUBJ;
- //System.out.println("----- mtype $subj");
+ // System.out.println("----- mtype $subj");
} else if (c == 'e') {
try {
- if (in.read() != 'x' ||
- in.read() != 't' ||
- in.read() != '.') {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "expecting $ext in ava pattern"));
+ if (in.read() != 'x' || in.read() != 't'
+ || in.read() != '.') {
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "expecting $ext in ava pattern"));
}
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
mType = TYPE_EXT;
- //System.out.println("----- mtype $ext");
+ // System.out.println("----- mtype $ext");
} else {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "unknown keyword. expecting $subj $ext or $req."));
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "unknown keyword. expecting $subj $ext or $req."));
}
// get request attribute or
@@ -244,26 +239,27 @@ class AVAPattern {
StringBuffer valueBuf = new StringBuffer();
try {
- while ((c = in.read()) != ',' &&
- c != -1 && c != '.' && c != '+') {
- //System.out.println("mValue read "+(char)c);
+ while ((c = in.read()) != ',' && c != -1 && c != '.'
+ && c != '+') {
+ // System.out.println("mValue read "+(char)c);
valueBuf.append((char) c);
}
if (c == '+' || c == ',') { // either ',' or '+'
- in.unread(c); // pushback last , or +
+ in.unread(c); // pushback last , or +
}
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
mValue = valueBuf.toString().trim();
- if (mValue.length() == 0) {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "$subj $ext or $req attribute name expected"));
+ if (mValue.length() == 0) {
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "$subj $ext or $req attribute name expected"));
}
- //System.out.println("----- mValue "+mValue);
+ // System.out.println("----- mValue "+mValue);
// get nth dn xxx not nth request attribute .
if (c == '.') {
@@ -271,24 +267,25 @@ class AVAPattern {
try {
while ((c = in.read()) != ',' && c != -1 && c != '.'
- && c != '+') {
- //System.out.println("mElement read "+(char)c);
+ && c != '+') {
+ // System.out.println("mElement read "+(char)c);
attrNumberBuf.append((char) c);
}
- if (c == ',' || c == '+') { // either ',' or '+'
- in.unread(c); // pushback last , or +
+ if (c == ',' || c == '+') { // either ',' or '+'
+ in.unread(c); // pushback last , or +
}
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
String attrNumber = attrNumberBuf.toString().trim();
if (attrNumber.length() == 0) {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "nth element $req $ext or $subj expected"));
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "nth element $req $ext or $subj expected"));
}
try {
@@ -301,9 +298,10 @@ class AVAPattern {
} else if (TYPE_EXT.equals(mType)) {
mGNType = attrNumber;
} else {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "Invalid format in nth element " +
- "$req $ext or $subj"));
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "Invalid format in nth element "
+ + "$req $ext or $subj"));
}
// get nth request attribute .
@@ -311,44 +309,46 @@ class AVAPattern {
StringBuffer attrNumberBuf1 = new StringBuffer();
try {
- while ((c = in.read()) != ',' &&
- c != -1 && c != '+') {
- //System.out.println("mElement read "+
- // (char)c);
+ while ((c = in.read()) != ',' && c != -1
+ && c != '+') {
+ // System.out.println("mElement read "+
+ // (char)c);
attrNumberBuf1.append((char) c);
}
- if (c != -1) { // either ',' or '+'
- in.unread(c); // pushback last , or +
+ if (c != -1) { // either ',' or '+'
+ in.unread(c); // pushback last , or +
}
} catch (IOException ex) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", ex.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", ex.toString()));
}
- String attrNumber1 =
- attrNumberBuf1.toString().trim();
+ String attrNumber1 = attrNumberBuf1.toString().trim();
if (attrNumber1.length() == 0) {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", "nth element $req or $ext expected"));
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "nth element $req or $ext expected"));
}
- try {
- mElement = Integer.parseInt(attrNumber1) - 1;
+ try {
+ mElement = Integer.parseInt(attrNumber1) - 1;
} catch (NumberFormatException ex) {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "Invalid format in nth element " +
- "$req or $ext."));
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "Invalid format in nth element "
+ + "$req or $ext."));
}
}
}
}
- //System.out.println("----- mElement "+mElement);
+ // System.out.println("----- mElement "+mElement);
} else {
// value is constant. treat as regular ava.
mType = TYPE_CONSTANT;
- // parse ava value.
+ // parse ava value.
StringBuffer valueBuf = new StringBuffer();
valueBuf.append((char) c);
@@ -360,31 +360,26 @@ class AVAPattern {
}
if (c == '+' || c == ',') { // either ',' or '+'
- in.unread(c); // pushback last , or +
+ in.unread(c); // pushback last , or +
}
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
mValue = valueBuf.toString().trim();
- /* try {
- * AVA ava = mLdapDNStrConverter.parseAVA(
- * valueBuf.toString());
- * mValue = ava.toLdapDNString();
- * //System.out.println("----- mValue "+mValue);
- * } catch (IOException e) {
- * throw new ECompSyntaxErr(e.toString());
- * }
+ /*
+ * try { AVA ava = mLdapDNStrConverter.parseAVA(
+ * valueBuf.toString()); mValue = ava.toLdapDNString();
+ * //System.out.println("----- mValue "+mValue); } catch
+ * (IOException e) { throw new ECompSyntaxErr(e.toString()); }
*/
}
}
- public String formAVA(IRequest req,
- X500Name subject,
- CertificateExtensions extensions)
- throws ELdapException {
+ public String formAVA(IRequest req, X500Name subject,
+ CertificateExtensions extensions) throws ELdapException {
if (TYPE_CONSTANT.equals(mType)) {
return mValue;
}
@@ -392,11 +387,11 @@ class AVAPattern {
if (TYPE_SUBJ.equals(mType)) {
String dn = subject.toString();
- if (mTestDN != null) {
+ if (mTestDN != null) {
dn = mTestDN;
}
- //System.out.println("AVAPattern Using dn "+mTestDN);
+ // System.out.println("AVAPattern Using dn "+mTestDN);
String[] rdns = LDAPDN.explodeDN(dn, false);
String value = null;
@@ -409,8 +404,8 @@ class AVAPattern {
for (int j = 0; j < avas.length; j++) {
String[] exploded = explodeAVA(avas[j]);
- if (exploded[0].equalsIgnoreCase(mValue) &&
- ++nFound == mElement) {
+ if (exploded[0].equalsIgnoreCase(mValue)
+ && ++nFound == mElement) {
value = exploded[1];
break;
}
@@ -429,11 +424,9 @@ class AVAPattern {
if (extensions != null) {
for (int i = 0; i < extensions.size(); i++) {
- Extension ext = (Extension)
- extensions.elementAt(i);
+ Extension ext = (Extension) extensions.elementAt(i);
- String extName =
- OIDMap.getName(ext.getExtensionId());
+ String extName = OIDMap.getName(ext.getExtensionId());
int index = extName.lastIndexOf(".");
@@ -445,13 +438,11 @@ class AVAPattern {
// Check the extensions one by one.
// For now, just give subjectAltName
// as an example.
- if (mValue.equalsIgnoreCase(
- SubjectAlternativeNameExtension.NAME)) {
+ if (mValue
+ .equalsIgnoreCase(SubjectAlternativeNameExtension.NAME)) {
try {
- GeneralNames subjectNames = (GeneralNames)
- ((SubjectAlternativeNameExtension)
- ext).get(
- SubjectAlternativeNameExtension.SUBJECT_NAME);
+ GeneralNames subjectNames = (GeneralNames) ((SubjectAlternativeNameExtension) ext)
+ .get(SubjectAlternativeNameExtension.SUBJECT_NAME);
if (subjectNames.size() == 0) {
break;
@@ -459,12 +450,11 @@ class AVAPattern {
int j = 0;
- for (Enumeration n =
- subjectNames.elements();
- n.hasMoreElements();) {
+ for (Enumeration n = subjectNames.elements(); n
+ .hasMoreElements();) {
- GeneralName gn = (GeneralName)
- n.nextElement();
+ GeneralName gn = (GeneralName) n
+ .nextElement();
String gname = gn.toString();
@@ -474,14 +464,13 @@ class AVAPattern {
break;
}
- String gType =
- gname.substring(0, index);
+ String gType = gname.substring(0, index);
if (mGNType != null) {
if (mGNType.equalsIgnoreCase(gType)) {
if (mElement == j) {
- gname =
- gname.substring(index + 2);
+ gname = gname
+ .substring(index + 2);
return gname;
} else {
j++;
@@ -489,30 +478,25 @@ class AVAPattern {
}
} else {
if (mElement == j) {
- gname =
- gname.substring(index + 2);
+ gname = gname.substring(index + 2);
return gname;
}
j++;
}
}
- } catch (IOException e) {
- CMS.debug(
- "AVAPattern: Publishing attr not formed " +
- "from extension " +
- "-- no attr : " +
- mValue);
+ } catch (IOException e) {
+ CMS.debug("AVAPattern: Publishing attr not formed "
+ + "from extension "
+ + "-- no attr : "
+ + mValue);
}
}
}
}
}
- CMS.debug(
- "AVAPattern: Publishing:attr not formed " +
- "from extension " +
- "-- no attr : " +
- mValue);
+ CMS.debug("AVAPattern: Publishing:attr not formed "
+ + "from extension " + "-- no attr : " + mValue);
return null;
}
@@ -521,9 +505,8 @@ class AVAPattern {
// mPrefix and mValue are looked up case-insensitive
String reqAttr = req.getExtDataInString(mPrefix, mValue);
if (reqAttr == null) {
- throw new
- ELdapException(
- CMS.getUserMessage("CMS_LDAP_NO_REQUEST", mValue, ""));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_REQUEST", mValue, ""));
}
return reqAttr;
@@ -549,10 +532,9 @@ class AVAPattern {
}
/**
- * Explode RDN into AVAs.
- * Does not handle escaped '+'
- * Java ldap library does not yet support multiple avas per rdn.
- * If RDN is malformed returns empty array.
+ * Explode RDN into AVAs. Does not handle escaped '+' Java ldap library does
+ * not yet support multiple avas per rdn. If RDN is malformed returns empty
+ * array.
*/
public static String[] explodeRDN(String rdn) {
int plus = rdn.indexOf('+');
@@ -577,9 +559,8 @@ class AVAPattern {
}
/**
- * Explode AVA into name and value.
- * Does not handle escaped '='
- * If AVA is malformed empty array is returned.
+ * Explode AVA into name and value. Does not handle escaped '=' If AVA is
+ * malformed empty array is returned.
*/
public static String[] explodeAVA(String ava) {
int equals = ava.indexOf('=');
@@ -592,4 +573,3 @@ class AVAPattern {
ava.substring(equals + 1).trim() };
}
}
-
diff --git a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCaSimpleMap.java b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCaSimpleMap.java
index 9f605678e..282e5411a 100644
--- a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCaSimpleMap.java
+++ b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCaSimpleMap.java
@@ -17,7 +17,6 @@
// --- END COPYRIGHT BLOCK ---
package com.netscape.cms.publish.mappers;
-
import java.io.IOException;
import java.security.cert.X509Certificate;
import java.util.Locale;
@@ -48,20 +47,18 @@ import com.netscape.certsrv.logging.ILogger;
import com.netscape.certsrv.publish.ILdapMapper;
import com.netscape.certsrv.request.IRequest;
-
-/**
- * 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.Do 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.
- *
+/**
+ * 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.Do 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.
+ *
* @version $Revision$, $Date$
*/
public class LdapCaSimpleMap implements ILdapMapper, IExtendedPluginInfo {
- protected static final String PROP_DNPATTERN = "dnPattern";
- protected static final String PROP_CREATECA = "createCAEntry";
+ protected static final String PROP_DNPATTERN = "dnPattern";
+ protected static final String PROP_CREATECA = "createCAEntry";
protected String mDnPattern = null;
protected boolean mCreateCAEntry = true;
@@ -72,28 +69,28 @@ public class LdapCaSimpleMap implements ILdapMapper, IExtendedPluginInfo {
/* the subject DN pattern */
protected MapDNPattern mPattern = null;
- /* the list of request attriubutes to retrieve*/
+ /* the list of request attriubutes to retrieve */
protected String[] mReqAttrs = null;
- /* the list of cert attriubutes to retrieve*/
+ /* the list of cert attriubutes to retrieve */
protected String[] mCertAttrs = null;
/* default dn pattern if left blank or not set in the config */
- public static final String DEFAULT_DNPATTERN =
- "UID=$req.HTTP_PARAMS.UID, OU=people, O=$subj.o, C=$subj.c";
+ public static final String DEFAULT_DNPATTERN = "UID=$req.HTTP_PARAMS.UID, OU=people, O=$subj.o, C=$subj.c";
- /**
+ /**
* Constructor.
- *
- * @param dnPattern The base DN.
+ *
+ * @param dnPattern The base DN.
*/
public LdapCaSimpleMap(String dnPattern) {
try {
init(dnPattern);
} catch (EBaseException e) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("OPERATION_ERROR", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("OPERATION_ERROR", e.toString()));
}
-
+
}
/**
@@ -104,16 +101,17 @@ public class LdapCaSimpleMap implements ILdapMapper, IExtendedPluginInfo {
public String[] getExtendedPluginInfo(Locale locale) {
String params[] = {
- "dnPattern;string;Describes how to form the Ldap Subject name in" +
- " the directory. Example 1: 'uid=CertMgr, o=Fedora'. Example 2:" +
- " 'uid=$req.HTTP_PARAMS.uid, E=$ext.SubjectAlternativeName.RFC822Name, ou=$subj.ou'. " +
- "$req means: take the attribute from the request. " +
- "$subj means: take the attribute from the certificate subject name. " +
- "$ext means: take the attribute from the certificate extension",
+ "dnPattern;string;Describes how to form the Ldap Subject name in"
+ + " the directory. Example 1: 'uid=CertMgr, o=Fedora'. Example 2:"
+ + " 'uid=$req.HTTP_PARAMS.uid, E=$ext.SubjectAlternativeName.RFC822Name, ou=$subj.ou'. "
+ + "$req means: take the attribute from the request. "
+ + "$subj means: take the attribute from the certificate subject name. "
+ + "$ext means: take the attribute from the certificate extension",
"createCAEntry;boolean;If checked, CA entry will be created automatically",
- IExtendedPluginInfo.HELP_TOKEN + ";configuration-ldappublish-mapper-casimplemapper",
- IExtendedPluginInfo.HELP_TEXT + ";Describes how to form the LDAP DN of the entry to publish to"
- };
+ IExtendedPluginInfo.HELP_TOKEN
+ + ";configuration-ldappublish-mapper-casimplemapper",
+ IExtendedPluginInfo.HELP_TEXT
+ + ";Describes how to form the LDAP DN of the entry to publish to" };
return params;
}
@@ -122,11 +120,10 @@ public class LdapCaSimpleMap implements ILdapMapper, IExtendedPluginInfo {
return mConfig;
}
- /**
+ /**
* for initializing from config store.
*/
- public void init(IConfigStore config)
- throws EBaseException {
+ public void init(IConfigStore config) throws EBaseException {
mConfig = config;
String dnPattern = mConfig.getString(PROP_DNPATTERN);
@@ -137,51 +134,51 @@ public class LdapCaSimpleMap implements ILdapMapper, IExtendedPluginInfo {
/**
* common initialization routine.
*/
- protected void init(String dnPattern)
- throws EBaseException {
- if (mInited)
+ protected void init(String dnPattern) throws EBaseException {
+ if (mInited)
return;
mDnPattern = dnPattern;
- if (mDnPattern == null || mDnPattern.length() == 0)
+ if (mDnPattern == null || mDnPattern.length() == 0)
mDnPattern = DEFAULT_DNPATTERN;
try {
mPattern = new MapDNPattern(mDnPattern);
String[] mReqAttrs = mPattern.getReqAttrs();
String[] mCertAttrs = mPattern.getCertAttrs();
} catch (ELdapException e) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_DN_PATTERN_INIT", dnPattern, e.toString()));
- throw new EBaseException("falied to init with pattern " +
- dnPattern + " " + e);
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_DN_PATTERN_INIT", dnPattern,
+ e.toString()));
+ throw new EBaseException("falied to init with pattern " + dnPattern
+ + " " + e);
}
mInited = true;
}
/**
- * Maps a X500 subject name to LDAP entry.
- * Uses DN pattern to form a DN for a LDAP base search.
+ * Maps a X500 subject name to LDAP entry. Uses DN pattern to form a DN for
+ * a LDAP base search.
*
- * @param conn the LDAP connection.
- * @param obj the object to map.
+ * @param conn the LDAP connection.
+ * @param obj the object to map.
* @exception ELdapException if any LDAP exceptions occured.
- */
- public String map(LDAPConnection conn, Object obj)
- throws ELdapException {
+ */
+ public String map(LDAPConnection conn, Object obj) throws ELdapException {
return map(conn, null, obj);
}
/**
- * Maps a X500 subject name to LDAP entry.
- * Uses DN pattern to form a DN for a LDAP base search.
+ * Maps a X500 subject name to LDAP entry. Uses DN pattern to form a DN for
+ * a LDAP base search.
*
- * @param conn the LDAP connection.
- * @param req the request to map.
- * @param obj the object to map.
+ * @param conn the LDAP connection.
+ * @param req the request to map.
+ * @param obj the object to map.
* @exception ELdapException if any LDAP exceptions occured.
- */
+ */
public String map(LDAPConnection conn, IRequest req, Object obj)
- throws ELdapException {
+ throws ELdapException {
if (conn == null)
return null;
String dn = null;
@@ -189,13 +186,14 @@ public class LdapCaSimpleMap implements ILdapMapper, IExtendedPluginInfo {
try {
dn = formDN(req, obj);
if (dn == null) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_DN_NOT_FORMED"));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_DN_NOT_FORMED"));
String s1 = "";
if (req != null)
s1 = req.getRequestId().toString();
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_NO_DN_MATCH", s1));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_DN_MATCH", s1));
}
int scope = LDAPv2.SCOPE_BASE;
String filter = "(objectclass=*)";
@@ -204,75 +202,82 @@ public class LdapCaSimpleMap implements ILdapMapper, IExtendedPluginInfo {
String[] attrs = new String[] { LDAPv3.NO_ATTRS };
log(ILogger.LL_INFO, "searching for dn: " + dn + " filter:"
- + filter + " scope: base");
+ + filter + " scope: base");
- LDAPSearchResults results =
- conn.search(dn, scope, filter, attrs, false);
+ LDAPSearchResults results = conn.search(dn, scope, filter, attrs,
+ false);
LDAPEntry entry = results.next();
if (results.hasMoreElements()) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_MORE_THAN_ONE_ENTRY", dn,
- ((req == null) ? "" : req.getRequestId().toString())));
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_MORE_THAN_ONE_ENTRY",
- ((req == null) ? "" : req.getRequestId().toString())));
+ log(ILogger.LL_FAILURE, CMS.getLogMessage(
+ "PUBLISH_MORE_THAN_ONE_ENTRY", dn, ((req == null) ? ""
+ : req.getRequestId().toString())));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_MORE_THAN_ONE_ENTRY", ((req == null) ? ""
+ : req.getRequestId().toString())));
}
if (entry != null)
return entry.getDN();
else {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_ENTRY_NOT_FOUND", dn,
- ((req == null) ? "" : req.getRequestId().toString())));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_NO_MATCH_FOUND",
- "null entry"));
+ log(ILogger.LL_FAILURE, CMS.getLogMessage(
+ "PUBLISH_ENTRY_NOT_FOUND", dn, ((req == null) ? ""
+ : req.getRequestId().toString())));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_MATCH_FOUND", "null entry"));
}
} catch (LDAPException e) {
if (e.getLDAPResultCode() == LDAPException.UNAVAILABLE) {
// need to intercept this because message from LDAP is
// "DSA is unavailable" which confuses with DSA PKI.
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_NO_LDAP_SERVER"));
- throw new ELdapServerDownException(CMS.getUserMessage("CMS_LDAP_SERVER_UNAVAILABLE", conn.getHost(), "" + conn.getPort()));
- } else if (e.getLDAPResultCode() == LDAPException.NO_SUCH_OBJECT && mCreateCAEntry) {
+ CMS.getLogMessage("PUBLISH_NO_LDAP_SERVER"));
+ throw new ELdapServerDownException(CMS.getUserMessage(
+ "CMS_LDAP_SERVER_UNAVAILABLE", conn.getHost(), ""
+ + conn.getPort()));
+ } else if (e.getLDAPResultCode() == LDAPException.NO_SUCH_OBJECT
+ && mCreateCAEntry) {
try {
createCAEntry(conn, dn);
log(ILogger.LL_INFO, "CA Entry " + dn + " Created");
return dn;
} catch (LDAPException e1) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_DN_MAP_EXCEPTION", dn, e1.toString()));
+ log(ILogger.LL_FAILURE, CMS.getLogMessage(
+ "PUBLISH_DN_MAP_EXCEPTION", dn, e1.toString()));
if (e1.getLDAPResultCode() == LDAPException.CONSTRAINT_VIOLATION) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_CA_ENTRY_NOT_CREATED"));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_CA_ENTRY_NOT_CREATED"));
} else {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_CA_ENTRY_NOT_CREATED1"));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_CA_ENTRY_NOT_CREATED1"));
}
- throw new
- ELdapException(CMS.getUserMessage("CMS_LDAP_CREATE_CA_FAILED", dn));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_CREATE_CA_FAILED", dn));
}
} else {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_DN_MAP_EXCEPTION", dn, e.toString()));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_NO_MATCH_FOUND", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_DN_MAP_EXCEPTION", dn,
+ e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_MATCH_FOUND", e.toString()));
}
} catch (EBaseException e) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_EXCEPTION_CAUGHT", e.toString()));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_NO_MATCH_FOUND", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_EXCEPTION_CAUGHT", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_MATCH_FOUND", e.toString()));
}
}
private void createCAEntry(LDAPConnection conn, String dn)
- throws LDAPException {
+ throws LDAPException {
LDAPAttributeSet attrs = new LDAPAttributeSet();
// OID 2.5.6.16
- String caOc[] = new String[] {"top",
- "person",
- "organizationalPerson",
- "inetOrgPerson"};
-
- String oOc[] = {"top",
- "organization"};
- String oiOc[] = {"top",
- "organizationalunit"};
-
+ String caOc[] = new String[] { "top", "person", "organizationalPerson",
+ "inetOrgPerson" };
+
+ String oOc[] = { "top", "organization" };
+ String oiOc[] = { "top", "organizationalunit" };
+
DN dnobj = new DN(dn);
String attrval[] = dnobj.explodeDN(true);
@@ -286,6 +291,7 @@ public class LdapCaSimpleMap implements ILdapMapper, IExtendedPluginInfo {
/**
* form a dn from component in the request and cert subject name
+ *
* @param req The request
* @param obj The certificate or crl
*/
@@ -296,33 +302,35 @@ public class LdapCaSimpleMap implements ILdapMapper, IExtendedPluginInfo {
try {
X509Certificate cert = (X509Certificate) obj;
- subjectDN =
- (X500Name) ((X509Certificate) cert).getSubjectDN();
+ subjectDN = (X500Name) ((X509Certificate) cert).getSubjectDN();
- CMS.debug("LdapCaSimpleMap: cert subject dn:" + subjectDN.toString());
- X509CertInfo info = (X509CertInfo)
- ((X509CertImpl) cert).get(
- X509CertImpl.NAME + "." + X509CertImpl.INFO);
+ CMS.debug("LdapCaSimpleMap: cert subject dn:"
+ + subjectDN.toString());
+ X509CertInfo info = (X509CertInfo) ((X509CertImpl) cert)
+ .get(X509CertImpl.NAME + "." + X509CertImpl.INFO);
- certExt = (CertificateExtensions) info.get(
- CertificateExtensions.NAME);
+ certExt = (CertificateExtensions) info
+ .get(CertificateExtensions.NAME);
} catch (java.security.cert.CertificateParsingException e) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
} catch (IOException e) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
} catch (java.security.cert.CertificateException e) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
} catch (ClassCastException e) {
try {
X509CRLImpl crl = (X509CRLImpl) obj;
- subjectDN =
- (X500Name) ((X509CRLImpl) crl).getIssuerDN();
+ subjectDN = (X500Name) ((X509CRLImpl) crl).getIssuerDN();
- CMS.debug("LdapCaSimpleMap: crl issuer dn: " +
- subjectDN.toString());
- }catch (ClassCastException ex) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_PUBLISH_OBJ_NOT_SUPPORTED",
+ CMS.debug("LdapCaSimpleMap: crl issuer dn: "
+ + subjectDN.toString());
+ } catch (ClassCastException ex) {
+ log(ILogger.LL_FAILURE, CMS.getLogMessage(
+ "PUBLISH_PUBLISH_OBJ_NOT_SUPPORTED",
((req == null) ? "" : req.getRequestId().toString())));
return null;
}
@@ -332,11 +340,12 @@ public class LdapCaSimpleMap implements ILdapMapper, IExtendedPluginInfo {
return dn;
} catch (ELdapException e) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_CANT_FORM_DN",
- ((req == null) ? "" : req.getRequestId().toString()), e.toString()));
- throw new EBaseException("falied to form dn for request: " +
- ((req == null) ? "" : req.getRequestId().toString()) + " " + e);
+ log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_CANT_FORM_DN",
+ ((req == null) ? "" : req.getRequestId().toString()),
+ e.toString()));
+ throw new EBaseException("falied to form dn for request: "
+ + ((req == null) ? "" : req.getRequestId().toString())
+ + " " + e);
}
}
@@ -362,11 +371,12 @@ public class LdapCaSimpleMap implements ILdapMapper, IExtendedPluginInfo {
try {
if (mDnPattern == null) {
v.addElement(PROP_DNPATTERN + "=");
- }else {
- v.addElement(PROP_DNPATTERN + "=" +
- mConfig.getString(PROP_DNPATTERN));
+ } else {
+ v.addElement(PROP_DNPATTERN + "="
+ + mConfig.getString(PROP_DNPATTERN));
}
- v.addElement(PROP_CREATECA + "=" + mConfig.getBoolean(PROP_CREATECA, true));
+ v.addElement(PROP_CREATECA + "="
+ + mConfig.getBoolean(PROP_CREATECA, true));
} catch (Exception e) {
}
return v;
@@ -374,8 +384,7 @@ public class LdapCaSimpleMap implements ILdapMapper, IExtendedPluginInfo {
private void log(int level, String msg) {
mLogger.log(ILogger.EV_SYSTEM, ILogger.S_LDAP, level,
- "LdapCaSimpleMapper: " + msg);
+ "LdapCaSimpleMapper: " + msg);
}
}
-
diff --git a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCertCompsMap.java b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCertCompsMap.java
index b8cc06f77..8b7a1dbe8 100644
--- a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCertCompsMap.java
+++ b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCertCompsMap.java
@@ -17,7 +17,6 @@
// --- END COPYRIGHT BLOCK ---
package com.netscape.cms.publish.mappers;
-
import java.security.cert.CRLException;
import java.security.cert.CertificateEncodingException;
import java.security.cert.X509Certificate;
@@ -34,22 +33,19 @@ import com.netscape.certsrv.logging.ILogger;
import com.netscape.certsrv.publish.ILdapMapper;
import com.netscape.certsrv.request.IRequest;
-
-/**
- * Maps a X509 certificate to a LDAP entry using AVAs in the certificate's
- * subject name to form the ldap search dn and filter.
- * Takes a optional root search dn.
- * The DN comps are used to form a LDAP entry to begin a subtree search.
- * The filter comps are used to form a search filter for the subtree.
- * If none of the DN comps matched, baseDN is used for the subtree.
- * If the baseDN is null and none of the DN comps matched, it is an error.
- * If none of the DN comps and filter comps matched, it is an error.
- * If just the filter comps is null, a base search is performed.
- *
+/**
+ * Maps a X509 certificate to a LDAP entry using AVAs in the certificate's
+ * subject name to form the ldap search dn and filter. Takes a optional root
+ * search dn. The DN comps are used to form a LDAP entry to begin a subtree
+ * search. The filter comps are used to form a search filter for the subtree. If
+ * none of the DN comps matched, baseDN is used for the subtree. If the baseDN
+ * is null and none of the DN comps matched, it is an error. If none of the DN
+ * comps and filter comps matched, it is an error. If just the filter comps is
+ * null, a base search is performed.
+ *
* @version $Revision$, $Date$
*/
-public class LdapCertCompsMap
- extends LdapDNCompsMap implements ILdapMapper {
+public class LdapCertCompsMap extends LdapDNCompsMap implements ILdapMapper {
ILogger mLogger = CMS.getLogger();
public LdapCertCompsMap() {
@@ -57,22 +53,22 @@ public class LdapCertCompsMap
// via configuration
}
- /**
+ /**
* Constructor.
- *
- * The DN comps are used to form a LDAP entry to begin a subtree search.
- * The filter comps are used to form a search filter for the subtree.
- * If none of the DN comps matched, baseDN is used for the subtree.
- * If the baseDN is null and none of the DN comps matched, it is an error.
- * If none of the DN comps and filter comps matched, it is an error.
- * If just the filter comps is null, a base search is performed.
*
- * @param baseDN The base DN.
+ * The DN comps are used to form a LDAP entry to begin a subtree search. The
+ * filter comps are used to form a search filter for the subtree. If none of
+ * the DN comps matched, baseDN is used for the subtree. If the baseDN is
+ * null and none of the DN comps matched, it is an error. If none of the DN
+ * comps and filter comps matched, it is an error. If just the filter comps
+ * is null, a base search is performed.
+ *
+ * @param baseDN The base DN.
* @param dnComps Components to form the LDAP base dn for search.
* @param filterComps Components to form the LDAP search filter.
*/
public LdapCertCompsMap(String baseDN, ObjectIdentifier[] dnComps,
- ObjectIdentifier[] filterComps) {
+ ObjectIdentifier[] filterComps) {
init(baseDN, dnComps, filterComps);
}
@@ -99,40 +95,35 @@ public class LdapCertCompsMap
/**
* constructor using non-standard certificate attribute.
*/
- public LdapCertCompsMap(String certAttr, String baseDN,
- ObjectIdentifier[] dnComps,
- ObjectIdentifier[] filterComps) {
+ public LdapCertCompsMap(String certAttr, String baseDN,
+ ObjectIdentifier[] dnComps, ObjectIdentifier[] filterComps) {
super(certAttr, baseDN, dnComps, filterComps);
}
protected void init(String baseDN, ObjectIdentifier[] dnComps,
- ObjectIdentifier[] filterComps) {
+ ObjectIdentifier[] filterComps) {
super.init(baseDN, dnComps, filterComps);
}
/**
- * Maps a certificate to LDAP entry.
- * Uses DN components and filter components to form a DN and
- * filter for a LDAP search.
- * If the formed DN is null the baseDN will be used.
- * If the formed DN is null and baseDN is null an error is thrown.
- * If the filter is null a base search is performed.
- * If both are null an error is thrown.
+ * Maps a certificate to LDAP entry. Uses DN components and filter
+ * components to form a DN and filter for a LDAP search. If the formed DN is
+ * null the baseDN will be used. If the formed DN is null and baseDN is null
+ * an error is thrown. If the filter is null a base search is performed. If
+ * both are null an error is thrown.
*
* @param conn - the LDAP connection.
* @param obj - the X509Certificate.
*/
- public String
- map(LDAPConnection conn, Object obj)
- throws ELdapException {
+ public String map(LDAPConnection conn, Object obj) throws ELdapException {
if (conn == null)
return null;
try {
X509Certificate cert = (X509Certificate) obj;
String result = null;
// form dn and filter for search.
- X500Name subjectDN =
- (X500Name) ((X509Certificate) cert).getSubjectDN();
+ X500Name subjectDN = (X500Name) ((X509Certificate) cert)
+ .getSubjectDN();
CMS.debug("LdapCertCompsMap: " + subjectDN.toString());
@@ -141,15 +132,16 @@ public class LdapCertCompsMap
result = super.map(conn, subjectDN, certbytes);
return result;
} catch (CertificateEncodingException e) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_CANT_DECODE_CERT", e.toString()));
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_GET_DER_ENCODED_CERT_FAILED", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_CANT_DECODE_CERT", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_GET_DER_ENCODED_CERT_FAILED", e.toString()));
} catch (ClassCastException e) {
try {
X509CRLImpl crl = (X509CRLImpl) obj;
String result = null;
- X500Name issuerDN =
- (X500Name) ((X509CRLImpl) crl).getIssuerDN();
+ X500Name issuerDN = (X500Name) ((X509CRLImpl) crl)
+ .getIssuerDN();
CMS.debug("LdapCertCompsMap: " + issuerDN.toString());
@@ -158,24 +150,27 @@ public class LdapCertCompsMap
result = super.map(conn, issuerDN, crlbytes);
return result;
} catch (CRLException ex) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_CANT_DECODE_CRL", ex.toString()));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_GET_DER_ENCODED_CRL_FAILED", ex.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_CANT_DECODE_CRL",
+ ex.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_GET_DER_ENCODED_CRL_FAILED", ex.toString()));
} catch (ClassCastException ex) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_NOT_SUPPORTED_OBJECT"));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_NOT_SUPPORTED_OBJECT"));
return null;
}
}
}
public String map(LDAPConnection conn, IRequest req, Object obj)
- throws ELdapException {
+ throws ELdapException {
return map(conn, obj);
}
private void log(int level, String msg) {
mLogger.log(ILogger.EV_SYSTEM, ILogger.S_LDAP, level,
- "LdapCertCompsMap: " + msg);
+ "LdapCertCompsMap: " + msg);
}
}
-
diff --git a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCertExactMap.java b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCertExactMap.java
index 7ce49748a..93fd58ee5 100644
--- a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCertExactMap.java
+++ b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCertExactMap.java
@@ -17,7 +17,6 @@
// --- END COPYRIGHT BLOCK ---
package com.netscape.cms.publish.mappers;
-
import java.security.cert.X509Certificate;
import java.util.Locale;
import java.util.Vector;
@@ -41,11 +40,10 @@ import com.netscape.certsrv.logging.ILogger;
import com.netscape.certsrv.publish.ILdapMapper;
import com.netscape.certsrv.request.IRequest;
-
-/**
- * Maps a X509 certificate to a LDAP entry by using the subject name
- * of the certificate as the LDAP entry DN.
- *
+/**
+ * Maps a X509 certificate to a LDAP entry by using the subject name of the
+ * certificate as the LDAP entry DN.
+ *
* @version $Revision$, $Date$
*/
public class LdapCertExactMap implements ILdapMapper, IExtendedPluginInfo {
@@ -63,8 +61,7 @@ public class LdapCertExactMap implements ILdapMapper, IExtendedPluginInfo {
return mConfig;
}
- public void init(IConfigStore config)
- throws EBaseException {
+ public void init(IConfigStore config) throws EBaseException {
if (mInited == true)
return;
mConfig = config;
@@ -73,11 +70,10 @@ public class LdapCertExactMap implements ILdapMapper, IExtendedPluginInfo {
public String[] getExtendedPluginInfo(Locale locale) {
String[] params = {
- IExtendedPluginInfo.HELP_TOKEN +
- ";configuration-ldappublish-mapper-certexactmapper",
- IExtendedPluginInfo.HELP_TEXT +
- ";Literally uses the subject name of the certificate as the DN to publish to"
- };
+ IExtendedPluginInfo.HELP_TOKEN
+ + ";configuration-ldappublish-mapper-certexactmapper",
+ IExtendedPluginInfo.HELP_TEXT
+ + ";Literally uses the subject name of the certificate as the DN to publish to" };
return params;
}
@@ -95,7 +91,7 @@ public class LdapCertExactMap implements ILdapMapper, IExtendedPluginInfo {
return v;
}
-
+
public Vector getInstanceParams() {
Vector v = new Vector();
@@ -103,15 +99,13 @@ public class LdapCertExactMap implements ILdapMapper, IExtendedPluginInfo {
}
/**
- * Finds the entry for the certificate by looking for the cert
- * subject name in the subject name attribute.
+ * Finds the entry for the certificate by looking for the cert subject name
+ * in the subject name attribute.
*
* @param conn - the LDAP connection.
* @param obj - the X509Certificate.
- */
- public String
- map(LDAPConnection conn, Object obj)
- throws ELdapException {
+ */
+ public String map(LDAPConnection conn, Object obj) throws ELdapException {
if (conn == null)
return null;
@@ -120,40 +114,40 @@ public class LdapCertExactMap implements ILdapMapper, IExtendedPluginInfo {
try {
X509Certificate cert = (X509Certificate) obj;
- subjectDN =
- (X500Name) ((X509Certificate) cert).getSubjectDN();
+ subjectDN = (X500Name) ((X509Certificate) cert).getSubjectDN();
- CMS.debug("LdapCertExactMap: cert subject dn:" + subjectDN.toString());
+ CMS.debug("LdapCertExactMap: cert subject dn:"
+ + subjectDN.toString());
} catch (ClassCastException e) {
try {
X509CRLImpl crl = (X509CRLImpl) obj;
- subjectDN =
- (X500Name) ((X509CRLImpl) crl).getIssuerDN();
+ subjectDN = (X500Name) ((X509CRLImpl) crl).getIssuerDN();
- CMS.debug("LdapCertExactMap: crl issuer dn: " +
- subjectDN.toString());
- }catch (ClassCastException ex) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_NOT_SUPPORTED_OBJECT"));
+ CMS.debug("LdapCertExactMap: crl issuer dn: "
+ + subjectDN.toString());
+ } catch (ClassCastException ex) {
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_NOT_SUPPORTED_OBJECT"));
return null;
}
}
try {
boolean hasCert = false;
boolean hasSubjectName = false;
- String[] attrs = new String[] { LDAPv3.NO_ATTRS };
+ String[] attrs = new String[] { LDAPv3.NO_ATTRS };
log(ILogger.LL_INFO, "Searching for " + subjectDN.toString());
- LDAPSearchResults results =
- conn.search(subjectDN.toString(), LDAPv2.SCOPE_BASE,
- "(objectclass=*)", attrs, false);
-
+ LDAPSearchResults results = conn.search(subjectDN.toString(),
+ LDAPv2.SCOPE_BASE, "(objectclass=*)", attrs, false);
+
LDAPEntry entry = results.next();
if (results.hasMoreElements()) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_MORE_THAN_ONE_ENTRY", "", subjectDN.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_MORE_THAN_ONE_ENTRY", "",
+ subjectDN.toString()));
}
if (entry != null) {
log(ILogger.LL_INFO, "entry found");
@@ -165,39 +159,37 @@ public class LdapCertExactMap implements ILdapMapper, IExtendedPluginInfo {
// need to intercept this because message from LDAP is
// "DSA is unavailable" which confuses with DSA PKI.
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_NO_LDAP_SERVER"));
- throw new ELdapServerDownException(CMS.getUserMessage("CMS_LDAP_SERVER_UNAVAILABLE", conn.getHost(), "" + conn.getPort()));
+ CMS.getLogMessage("PUBLISH_NO_LDAP_SERVER"));
+ throw new ELdapServerDownException(CMS.getUserMessage(
+ "CMS_LDAP_SERVER_UNAVAILABLE", conn.getHost(), ""
+ + conn.getPort()));
} else {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_DN_MAP_EXCEPTION", e.toString()));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_NO_MATCH_FOUND", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_DN_MAP_EXCEPTION",
+ e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_MATCH_FOUND", e.toString()));
}
}
/*
- catch (IOException e) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_CANT_GET_SUBJECT", e.toString()));
- throw new ELdapException(
- LdapResources.GET_CERT_SUBJECT_DN_FAILED, e);
- }
- catch (CertificateEncodingException e) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_CANT_DECODE_CERT", e.toString()));
- throw new ELdapException(
- LdapResources.GET_DER_ENCODED_CERT_FAILED, e);
- }
+ * catch (IOException e) { log(ILogger.LL_FAILURE,
+ * CMS.getLogMessage("PUBLISH_CANT_GET_SUBJECT", e.toString())); throw
+ * new ELdapException( LdapResources.GET_CERT_SUBJECT_DN_FAILED, e); }
+ * catch (CertificateEncodingException e) { log(ILogger.LL_FAILURE,
+ * CMS.getLogMessage("PUBLISH_CANT_DECODE_CERT", e.toString())); throw
+ * new ELdapException( LdapResources.GET_DER_ENCODED_CERT_FAILED, e); }
*/
}
public String map(LDAPConnection conn, IRequest req, Object obj)
- throws ELdapException {
+ throws ELdapException {
return map(conn, obj);
}
private void log(int level, String msg) {
- mLogger.log(ILogger.EV_SYSTEM, ILogger.S_LDAP, level,
- "LdapCertExactMap: " + msg);
+ mLogger.log(ILogger.EV_SYSTEM, ILogger.S_LDAP, level,
+ "LdapCertExactMap: " + msg);
}
}
-
diff --git a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCertSubjMap.java b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCertSubjMap.java
index 017441df0..b4ce10bc3 100644
--- a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCertSubjMap.java
+++ b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCertSubjMap.java
@@ -17,7 +17,6 @@
// --- END COPYRIGHT BLOCK ---
package com.netscape.cms.publish.mappers;
-
import java.security.cert.X509Certificate;
import java.util.Locale;
import java.util.Vector;
@@ -41,11 +40,10 @@ import com.netscape.certsrv.logging.ILogger;
import com.netscape.certsrv.publish.ILdapMapper;
import com.netscape.certsrv.request.IRequest;
-
-/**
- * Maps a X509 certificate to a LDAP entry by finding an LDAP entry
- * which has an attribute whose contents are equal to the cert subject name.
- *
+/**
+ * Maps a X509 certificate to a LDAP entry by finding an LDAP entry which has an
+ * attribute whose contents are equal to the cert subject name.
+ *
* @version $Revision$, $Date$
*/
public class LdapCertSubjMap implements ILdapMapper, IExtendedPluginInfo {
@@ -64,13 +62,15 @@ public class LdapCertSubjMap implements ILdapMapper, IExtendedPluginInfo {
/**
* constructs a certificate subject name mapper with search base.
- * @param searchBase the dn to start searching for the certificate
- * subject name.
+ *
+ * @param searchBase the dn to start searching for the certificate subject
+ * name.
*/
public LdapCertSubjMap(String searchBase) {
if (searchBase == null)
throw new IllegalArgumentException(
- "a null argument to constructor " + this.getClass().getName());
+ "a null argument to constructor "
+ + this.getClass().getName());
mSearchBase = searchBase;
mInited = true;
}
@@ -82,23 +82,23 @@ public class LdapCertSubjMap implements ILdapMapper, IExtendedPluginInfo {
* @param certSubjNameAttr attribute for certificate subject names.
* @param certAttr attribute to find certificate.
*/
- public LdapCertSubjMap(String searchBase,
- String certSubjNameAttr, String certAttr) {
- if (searchBase == null ||
- certSubjNameAttr == null || certAttr == null)
+ public LdapCertSubjMap(String searchBase, String certSubjNameAttr,
+ String certAttr) {
+ if (searchBase == null || certSubjNameAttr == null || certAttr == null)
throw new IllegalArgumentException(
- "a null argument to constructor " + this.getClass().getName());
+ "a null argument to constructor "
+ + this.getClass().getName());
mCertSubjNameAttr = certSubjNameAttr;
mSearchBase = searchBase;
mInited = true;
}
- public LdapCertSubjMap(String searchBase,
- String certSubjNameAttr, String certAttr, boolean useAllEntries) {
- if (searchBase == null ||
- certSubjNameAttr == null || certAttr == null)
+ public LdapCertSubjMap(String searchBase, String certSubjNameAttr,
+ String certAttr, boolean useAllEntries) {
+ if (searchBase == null || certSubjNameAttr == null || certAttr == null)
throw new IllegalArgumentException(
- "a null argument to constructor " + this.getClass().getName());
+ "a null argument to constructor "
+ + this.getClass().getName());
mCertSubjNameAttr = certSubjNameAttr;
mSearchBase = searchBase;
mUseAllEntries = useAllEntries;
@@ -127,16 +127,15 @@ public class LdapCertSubjMap implements ILdapMapper, IExtendedPluginInfo {
"certSubjNameAttr;string;Name of Ldap attribute containing cert subject name",
"searchBase;string;Base DN to search from",
"useAllEntries;boolean;Use all entries for publishing",
- IExtendedPluginInfo.HELP_TOKEN +
- ";configuration-ldappublish-mapper-certsubjmapper",
- IExtendedPluginInfo.HELP_TEXT +
- ";This plugin assumes you want to publish to an LDAP entry which has " +
- "an attribute whose contents are equal to the cert subject name"
- };
+ IExtendedPluginInfo.HELP_TOKEN
+ + ";configuration-ldappublish-mapper-certsubjmapper",
+ IExtendedPluginInfo.HELP_TEXT
+ + ";This plugin assumes you want to publish to an LDAP entry which has "
+ + "an attribute whose contents are equal to the cert subject name" };
return params;
}
-
+
public Vector getInstanceParams() {
Vector v = new Vector();
@@ -158,28 +157,25 @@ public class LdapCertSubjMap implements ILdapMapper, IExtendedPluginInfo {
return mConfig;
}
- public void init(IConfigStore config)
- throws EBaseException {
+ public void init(IConfigStore config) throws EBaseException {
if (mInited == true)
return;
mConfig = config;
mCertSubjNameAttr = config.getString("certSubjNameAttr",
- LDAP_CERTSUBJNAME_ATTR);
+ LDAP_CERTSUBJNAME_ATTR);
mSearchBase = config.getString("searchBase");
mUseAllEntries = config.getBoolean("useAllEntries", false);
mInited = true;
}
/**
- * Finds the entry for the certificate by looking for the cert
- * subject name in the subject name attribute.
+ * Finds the entry for the certificate by looking for the cert subject name
+ * in the subject name attribute.
*
* @param conn - the LDAP connection.
* @param obj - the X509Certificate.
- */
- public String
- map(LDAPConnection conn, Object obj)
- throws ELdapException {
+ */
+ public String map(LDAPConnection conn, Object obj) throws ELdapException {
if (conn == null)
return null;
X500Name subjectDN = null;
@@ -187,41 +183,43 @@ public class LdapCertSubjMap implements ILdapMapper, IExtendedPluginInfo {
try {
X509Certificate cert = (X509Certificate) obj;
- subjectDN =
- (X500Name) ((X509Certificate) cert).getSubjectDN();
+ subjectDN = (X500Name) ((X509Certificate) cert).getSubjectDN();
- CMS.debug("LdapCertSubjMap: cert subject dn:" + subjectDN.toString());
+ CMS.debug("LdapCertSubjMap: cert subject dn:"
+ + subjectDN.toString());
} catch (ClassCastException e) {
try {
X509CRLImpl crl = (X509CRLImpl) obj;
- subjectDN =
- (X500Name) ((X509CRLImpl) crl).getIssuerDN();
+ subjectDN = (X500Name) ((X509CRLImpl) crl).getIssuerDN();
- CMS.debug("LdapCertSubjMap: crl issuer dn: " +
- subjectDN.toString());
- }catch (ClassCastException ex) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_NOT_SUPPORTED_OBJECT"));
+ CMS.debug("LdapCertSubjMap: crl issuer dn: "
+ + subjectDN.toString());
+ } catch (ClassCastException ex) {
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_NOT_SUPPORTED_OBJECT"));
return null;
}
}
try {
boolean hasCert = false;
boolean hasSubjectName = false;
- String[] attrs = new String[] { LDAPv3.NO_ATTRS };
+ String[] attrs = new String[] { LDAPv3.NO_ATTRS };
+
+ log(ILogger.LL_INFO, "search " + mSearchBase + " ("
+ + mCertSubjNameAttr + "=" + subjectDN + ") "
+ + mCertSubjNameAttr);
- log(ILogger.LL_INFO, "search " + mSearchBase +
- " (" + mCertSubjNameAttr + "=" + subjectDN + ") " + mCertSubjNameAttr);
+ LDAPSearchResults results = conn.search(mSearchBase,
+ LDAPv2.SCOPE_SUB, "(" + mCertSubjNameAttr + "=" + subjectDN
+ + ")", attrs, false);
- LDAPSearchResults results =
- conn.search(mSearchBase, LDAPv2.SCOPE_SUB,
- "(" + mCertSubjNameAttr + "=" + subjectDN + ")", attrs, false);
-
LDAPEntry entry = results.next();
if (results.hasMoreElements()) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_MORE_THAN_ONE_ENTRY", "", subjectDN.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_MORE_THAN_ONE_ENTRY", "",
+ subjectDN.toString()));
}
if (entry != null) {
log(ILogger.LL_INFO, "entry found");
@@ -233,38 +231,35 @@ public class LdapCertSubjMap implements ILdapMapper, IExtendedPluginInfo {
// need to intercept this because message from LDAP is
// "DSA is unavailable" which confuses with DSA PKI.
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_NO_LDAP_SERVER"));
- throw new ELdapServerDownException(CMS.getUserMessage("CMS_LDAP_SERVER_UNAVAILABLE", conn.getHost(), "" + conn.getPort()));
+ CMS.getLogMessage("PUBLISH_NO_LDAP_SERVER"));
+ throw new ELdapServerDownException(CMS.getUserMessage(
+ "CMS_LDAP_SERVER_UNAVAILABLE", conn.getHost(), ""
+ + conn.getPort()));
} else {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_DN_MAP_EXCEPTION", "LDAPException", e.toString()));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_NO_MATCH_FOUND", e.toString()));
+ log(ILogger.LL_FAILURE, CMS.getLogMessage(
+ "PUBLISH_DN_MAP_EXCEPTION", "LDAPException",
+ e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_MATCH_FOUND", e.toString()));
}
}
/*
- catch (IOException e) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_CANT_GET_SUBJECT", e.toString()));
- throw new ELdapException(
- LdapResources.GET_CERT_SUBJECT_DN_FAILED, e);
- }
- catch (CertificateEncodingException e) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_CANT_DECODE_CERT", e.toString()));
- throw new ELdapException(
- LdapResources.GET_DER_ENCODED_CERT_FAILED, e);
- }
+ * catch (IOException e) { log(ILogger.LL_FAILURE,
+ * CMS.getLogMessage("PUBLISH_CANT_GET_SUBJECT", e.toString())); throw
+ * new ELdapException( LdapResources.GET_CERT_SUBJECT_DN_FAILED, e); }
+ * catch (CertificateEncodingException e) { log(ILogger.LL_FAILURE,
+ * CMS.getLogMessage("PUBLISH_CANT_DECODE_CERT", e.toString())); throw
+ * new ELdapException( LdapResources.GET_DER_ENCODED_CERT_FAILED, e); }
*/
}
public String map(LDAPConnection conn, IRequest req, Object obj)
- throws ELdapException {
+ throws ELdapException {
return map(conn, obj);
}
- public Vector mapAll(LDAPConnection conn, Object obj)
- throws ELdapException {
+ public Vector mapAll(LDAPConnection conn, Object obj) throws ELdapException {
Vector v = new Vector();
if (conn == null)
@@ -274,28 +269,31 @@ public class LdapCertSubjMap implements ILdapMapper, IExtendedPluginInfo {
try {
X509Certificate cert = (X509Certificate) obj;
subjectDN = (X500Name) ((X509Certificate) cert).getSubjectDN();
- CMS.debug("LdapCertSubjMap: cert subject dn:" + subjectDN.toString());
+ CMS.debug("LdapCertSubjMap: cert subject dn:"
+ + subjectDN.toString());
} catch (ClassCastException e) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_NOT_SUPPORTED_OBJECT"));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_NOT_SUPPORTED_OBJECT"));
return v;
}
try {
boolean hasCert = false;
boolean hasSubjectName = false;
- String[] attrs = new String[] { LDAPv3.NO_ATTRS };
+ String[] attrs = new String[] { LDAPv3.NO_ATTRS };
- log(ILogger.LL_INFO, "search " + mSearchBase +
- " (" + mCertSubjNameAttr + "=" + subjectDN + ") " + mCertSubjNameAttr);
+ log(ILogger.LL_INFO, "search " + mSearchBase + " ("
+ + mCertSubjNameAttr + "=" + subjectDN + ") "
+ + mCertSubjNameAttr);
+
+ LDAPSearchResults results = conn.search(mSearchBase,
+ LDAPv2.SCOPE_SUB, "(" + mCertSubjNameAttr + "=" + subjectDN
+ + ")", attrs, false);
- LDAPSearchResults results =
- conn.search(mSearchBase, LDAPv2.SCOPE_SUB,
- "(" + mCertSubjNameAttr + "=" + subjectDN + ")", attrs, false);
-
while (results.hasMoreElements()) {
LDAPEntry entry = results.next();
String dn = entry.getDN();
v.addElement(dn);
- CMS.debug("LdapCertSubjMap: dn="+dn);
+ CMS.debug("LdapCertSubjMap: dn=" + dn);
}
CMS.debug("LdapCertSubjMap: Number of entries: " + v.size());
} catch (LDAPException e) {
@@ -303,12 +301,16 @@ public class LdapCertSubjMap implements ILdapMapper, IExtendedPluginInfo {
// need to intercept this because message from LDAP is
// "DSA is unavailable" which confuses with DSA PKI.
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_NO_LDAP_SERVER"));
- throw new ELdapServerDownException(CMS.getUserMessage("CMS_LDAP_SERVER_UNAVAILABLE", conn.getHost(), "" + conn.getPort()));
+ CMS.getLogMessage("PUBLISH_NO_LDAP_SERVER"));
+ throw new ELdapServerDownException(CMS.getUserMessage(
+ "CMS_LDAP_SERVER_UNAVAILABLE", conn.getHost(), ""
+ + conn.getPort()));
} else {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_DN_MAP_EXCEPTION", "LDAPException", e.toString()));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_NO_MATCH_FOUND", e.toString()));
+ log(ILogger.LL_FAILURE, CMS.getLogMessage(
+ "PUBLISH_DN_MAP_EXCEPTION", "LDAPException",
+ e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_MATCH_FOUND", e.toString()));
}
}
@@ -316,13 +318,13 @@ public class LdapCertSubjMap implements ILdapMapper, IExtendedPluginInfo {
}
public Vector mapAll(LDAPConnection conn, IRequest req, Object obj)
- throws ELdapException {
+ throws ELdapException {
return mapAll(conn, obj);
}
private void log(int level, String msg) {
- mLogger.log(ILogger.EV_SYSTEM, ILogger.S_LDAP, level,
- "LdapCertSubjMap: " + msg);
+ mLogger.log(ILogger.EV_SYSTEM, ILogger.S_LDAP, level,
+ "LdapCertSubjMap: " + msg);
}
/**
@@ -344,4 +346,3 @@ public class LdapCertSubjMap implements ILdapMapper, IExtendedPluginInfo {
}
}
-
diff --git a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCrlIssuerCompsMap.java b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCrlIssuerCompsMap.java
index 40283e985..05d25e5ff 100644
--- a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCrlIssuerCompsMap.java
+++ b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapCrlIssuerCompsMap.java
@@ -17,7 +17,6 @@
// --- END COPYRIGHT BLOCK ---
package com.netscape.cms.publish.mappers;
-
import java.security.cert.CRLException;
import java.util.Vector;
@@ -32,16 +31,14 @@ import com.netscape.certsrv.logging.ILogger;
import com.netscape.certsrv.publish.ILdapMapper;
import com.netscape.certsrv.request.IRequest;
-
-/**
- * Default crl mapper.
- * maps the crl to a ldap entry by using components in the issuer name
- * to find the CA's entry.
- *
+/**
+ * Default crl mapper. maps the crl to a ldap entry by using components in the
+ * issuer name to find the CA's entry.
+ *
* @version $Revision$, $Date$
*/
-public class LdapCrlIssuerCompsMap
- extends LdapDNCompsMap implements ILdapMapper {
+public class LdapCrlIssuerCompsMap extends LdapDNCompsMap implements
+ ILdapMapper {
ILogger mLogger = CMS.getLogger();
public LdapCrlIssuerCompsMap() {
@@ -49,31 +46,30 @@ public class LdapCrlIssuerCompsMap
// via configuration
}
- /**
+ /**
* Constructor.
- *
- * The DN comps are used to form a LDAP entry to begin a subtree search.
- * The filter comps are used to form a search filter for the subtree.
- * If none of the DN comps matched, baseDN is used for the subtree.
- * If the baseDN is null and none of the DN comps matched, it is an error.
- * If none of the DN comps and filter comps matched, it is an error.
- * If just the filter comps is null, a base search is performed.
*
- * @param baseDN The base DN.
+ * The DN comps are used to form a LDAP entry to begin a subtree search. The
+ * filter comps are used to form a search filter for the subtree. If none of
+ * the DN comps matched, baseDN is used for the subtree. If the baseDN is
+ * null and none of the DN comps matched, it is an error. If none of the DN
+ * comps and filter comps matched, it is an error. If just the filter comps
+ * is null, a base search is performed.
+ *
+ * @param baseDN The base DN.
* @param dnComps Components to form the LDAP base dn for search.
* @param filterComps Components to form the LDAP search filter.
*/
public LdapCrlIssuerCompsMap(String baseDN, ObjectIdentifier[] dnComps,
- ObjectIdentifier[] filterComps) {
+ ObjectIdentifier[] filterComps) {
init(baseDN, dnComps, filterComps);
}
/**
* constructor using non-standard certificate attribute.
*/
- public LdapCrlIssuerCompsMap(String crlAttr, String baseDN,
- ObjectIdentifier[] dnComps,
- ObjectIdentifier[] filterComps) {
+ public LdapCrlIssuerCompsMap(String crlAttr, String baseDN,
+ ObjectIdentifier[] dnComps, ObjectIdentifier[] filterComps) {
super(crlAttr, baseDN, dnComps, filterComps);
}
@@ -88,7 +84,7 @@ public class LdapCrlIssuerCompsMap
public Vector getDefaultParams() {
Vector v = super.getDefaultParams();
- //v.addElement("crlAttr=" + LdapCrlPublisher.LDAP_CRL_ATTR);
+ // v.addElement("crlAttr=" + LdapCrlPublisher.LDAP_CRL_ATTR);
return v;
}
@@ -99,35 +95,30 @@ public class LdapCrlIssuerCompsMap
}
protected void init(String baseDN, ObjectIdentifier[] dnComps,
- ObjectIdentifier[] filterComps) {
- //mLdapAttr = LdapCrlPublisher.LDAP_CRL_ATTR;
+ ObjectIdentifier[] filterComps) {
+ // mLdapAttr = LdapCrlPublisher.LDAP_CRL_ATTR;
super.init(baseDN, dnComps, filterComps);
}
/**
- * Maps a crl to LDAP entry.
- * Uses issuer DN components and filter components to form a DN and
- * filter for a LDAP search.
- * If the formed DN is null the baseDN will be used.
- * If the formed DN is null and baseDN is null an error is thrown.
- * If the filter is null a base search is performed.
- * If both are null an error is thrown.
+ * Maps a crl to LDAP entry. Uses issuer DN components and filter components
+ * to form a DN and filter for a LDAP search. If the formed DN is null the
+ * baseDN will be used. If the formed DN is null and baseDN is null an error
+ * is thrown. If the filter is null a base search is performed. If both are
+ * null an error is thrown.
*
* @param conn - the LDAP connection.
* @param obj - the X509Certificate.
* @return the result. LdapCertMapResult is also used for CRL.
- */
- public String
- map(LDAPConnection conn, Object obj)
- throws ELdapException {
+ */
+ public String map(LDAPConnection conn, Object obj) throws ELdapException {
if (conn == null)
return null;
X509CRLImpl crl = (X509CRLImpl) obj;
try {
String result = null;
- X500Name issuerDN =
- (X500Name) ((X509CRLImpl) crl).getIssuerDN();
+ X500Name issuerDN = (X500Name) ((X509CRLImpl) crl).getIssuerDN();
CMS.debug("LdapCrlIssuerCompsMap: " + issuerDN.toString());
@@ -136,14 +127,15 @@ public class LdapCrlIssuerCompsMap
result = super.map(conn, issuerDN, crlbytes);
return result;
} catch (CRLException e) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_CANT_DECODE_CRL", e.toString()));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_GET_DER_ENCODED_CRL_FAILED", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_CANT_DECODE_CRL", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_GET_DER_ENCODED_CRL_FAILED", e.toString()));
}
}
public String map(LDAPConnection conn, IRequest req, Object obj)
- throws ELdapException {
+ throws ELdapException {
return map(conn, obj);
}
@@ -152,8 +144,7 @@ public class LdapCrlIssuerCompsMap
*/
private void log(int level, String msg) {
mLogger.log(ILogger.EV_SYSTEM, ILogger.S_LDAP, level,
- "LdapCrlCompsMap: " + msg);
+ "LdapCrlCompsMap: " + msg);
}
}
-
diff --git a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapDNCompsMap.java b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapDNCompsMap.java
index 1662283f3..36374ddbb 100644
--- a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapDNCompsMap.java
+++ b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapDNCompsMap.java
@@ -17,7 +17,6 @@
// --- END COPYRIGHT BLOCK ---
package com.netscape.cms.publish.mappers;
-
import java.io.IOException;
import java.util.Enumeration;
import java.util.Locale;
@@ -46,23 +45,20 @@ import com.netscape.certsrv.ldap.ELdapServerDownException;
import com.netscape.certsrv.logging.ILogger;
import com.netscape.certsrv.publish.ILdapPlugin;
-
-/**
- * Maps a Subject name to an entry in the LDAP server.
- * subject name to form the ldap search dn and filter.
- * Takes a optional root search dn.
- * The DN comps are used to form a LDAP entry to begin a subtree search.
- * The filter comps are used to form a search filter for the subtree.
- * If none of the DN comps matched, baseDN is used for the subtree.
- * If the baseDN is null and none of the DN comps matched, it is an error.
- * If none of the DN comps and filter comps matched, it is an error.
- * If just the filter comps is null, a base search is performed.
- *
+/**
+ * Maps a Subject name to an entry in the LDAP server. subject name to form the
+ * ldap search dn and filter. Takes a optional root search dn. The DN comps are
+ * used to form a LDAP entry to begin a subtree search. The filter comps are
+ * used to form a search filter for the subtree. If none of the DN comps
+ * matched, baseDN is used for the subtree. If the baseDN is null and none of
+ * the DN comps matched, it is an error. If none of the DN comps and filter
+ * comps matched, it is an error. If just the filter comps is null, a base
+ * search is performed.
+ *
* @version $Revision$, $Date$
*/
-public class LdapDNCompsMap
- implements ILdapPlugin, IExtendedPluginInfo {
- //protected String mLdapAttr = null;
+public class LdapDNCompsMap implements ILdapPlugin, IExtendedPluginInfo {
+ // protected String mLdapAttr = null;
protected String mBaseDN = null;
protected ObjectIdentifier[] mDnComps = null;
protected ObjectIdentifier[] mFilterComps = null;
@@ -71,24 +67,23 @@ public class LdapDNCompsMap
private boolean mInited = false;
protected IConfigStore mConfig = null;
- /**
+ /**
* Constructor.
- *
- * The DN comps are used to form a LDAP entry to begin a subtree search.
- * The filter comps are used to form a search filter for the subtree.
- * If none of the DN comps matched, baseDN is used for the subtree.
- * If the baseDN is null and none of the DN comps matched, it is an error.
- * If none of the DN comps and filter comps matched, it is an error.
- * If just the filter comps is null, a base search is performed.
*
- * @param baseDN The base DN.
+ * The DN comps are used to form a LDAP entry to begin a subtree search. The
+ * filter comps are used to form a search filter for the subtree. If none of
+ * the DN comps matched, baseDN is used for the subtree. If the baseDN is
+ * null and none of the DN comps matched, it is an error. If none of the DN
+ * comps and filter comps matched, it is an error. If just the filter comps
+ * is null, a base search is performed.
+ *
+ * @param baseDN The base DN.
* @param dnComps Components to form the LDAP base dn for search.
* @param filterComps Components to form the LDAP search filter.
*/
- public LdapDNCompsMap(String ldapAttr, String baseDN,
- ObjectIdentifier[] dnComps,
- ObjectIdentifier[] filterComps) {
- //mLdapAttr = ldapAttr;
+ public LdapDNCompsMap(String ldapAttr, String baseDN,
+ ObjectIdentifier[] dnComps, ObjectIdentifier[] filterComps) {
+ // mLdapAttr = ldapAttr;
init(baseDN, dnComps, filterComps);
}
@@ -102,17 +97,16 @@ public class LdapDNCompsMap
return mConfig;
}
- /**
+ /**
* for initializing from config store.
*/
- public void init(IConfigStore config)
- throws EBaseException {
+ public void init(IConfigStore config) throws EBaseException {
mConfig = config;
String baseDN = mConfig.getString("baseDN");
- ObjectIdentifier[] dnComps =
- getCompsFromString(mConfig.getString("dnComps"));
- ObjectIdentifier[] filterComps =
- getCompsFromString(mConfig.getString("filterComps"));
+ ObjectIdentifier[] dnComps = getCompsFromString(mConfig
+ .getString("dnComps"));
+ ObjectIdentifier[] filterComps = getCompsFromString(mConfig
+ .getString("filterComps"));
init(baseDN, dnComps, filterComps);
}
@@ -130,14 +124,13 @@ public class LdapDNCompsMap
"baseDN;string;Base to search from. E.g ou=Engineering,o=Fedora",
"dnComps;string;Comma-separated list of attributes to put in the DN",
"filterComps;string;Comma-separated list of attributes to form the filter",
- IExtendedPluginInfo.HELP_TOKEN +
- ";configuration-ldappublish-mapper-dncompsmapper",
- IExtendedPluginInfo.HELP_TEXT +
- ";More complex mapper. Used when there is not enough information " +
- "in the cert request to form the complete LDAP DN. Using this " +
- "plugin, you can specify additional LDAP filters to narrow down the " +
- "search"
- };
+ IExtendedPluginInfo.HELP_TOKEN
+ + ";configuration-ldappublish-mapper-dncompsmapper",
+ IExtendedPluginInfo.HELP_TEXT
+ + ";More complex mapper. Used when there is not enough information "
+ + "in the cert request to form the complete LDAP DN. Using this "
+ + "plugin, you can specify additional LDAP filters to narrow down the "
+ + "search" };
return s;
}
@@ -163,14 +156,12 @@ public class LdapDNCompsMap
if (mDnComps == null) {
v.addElement("dnComps=");
} else {
- v.addElement("dnComps=" +
- mConfig.getString("dnComps"));
+ v.addElement("dnComps=" + mConfig.getString("dnComps"));
}
if (mFilterComps == null) {
v.addElement("filterComps=");
} else {
- v.addElement("filterComps=" +
- mConfig.getString("filterComps"));
+ v.addElement("filterComps=" + mConfig.getString("filterComps"));
}
} catch (Exception e) {
}
@@ -181,8 +172,8 @@ public class LdapDNCompsMap
* common initialization routine.
*/
protected void init(String baseDN, ObjectIdentifier[] dnComps,
- ObjectIdentifier[] filterComps) {
- if (mInited)
+ ObjectIdentifier[] filterComps) {
+ if (mInited)
return;
mBaseDN = baseDN;
@@ -191,36 +182,33 @@ public class LdapDNCompsMap
if (filterComps != null)
mFilterComps = (ObjectIdentifier[]) filterComps.clone();
- // log debug info.
+ // log debug info.
for (int i = 0; i < mDnComps.length; i++) {
- CMS.debug(
- "LdapDNCompsMap: dnComp " + X500NameAttrMap.getDefault().getName(mDnComps[i]));
+ CMS.debug("LdapDNCompsMap: dnComp "
+ + X500NameAttrMap.getDefault().getName(mDnComps[i]));
}
for (int i = 0; i < mFilterComps.length; i++) {
- CMS.debug("LdapDNCompsMap: filterComp " +
- X500NameAttrMap.getDefault().getName(mFilterComps[i]));
+ CMS.debug("LdapDNCompsMap: filterComp "
+ + X500NameAttrMap.getDefault().getName(mFilterComps[i]));
}
mInited = true;
}
/**
- * Maps a X500 subject name to LDAP entry.
- * Uses DN components and filter components to form a DN and
- * filter for a LDAP search.
- * If the formed DN is null the baseDN will be used.
- * If the formed DN is null and baseDN is null an error is thrown.
- * If the filter is null a base search is performed.
- * If both are null an error is thrown.
+ * Maps a X500 subject name to LDAP entry. Uses DN components and filter
+ * components to form a DN and filter for a LDAP search. If the formed DN is
+ * null the baseDN will be used. If the formed DN is null and baseDN is null
+ * an error is thrown. If the filter is null a base search is performed. If
+ * both are null an error is thrown.
*
- * @param conn the LDAP connection.
- * @param x500name the dn to map.
- * @param obj the object
+ * @param conn the LDAP connection.
+ * @param x500name the dn to map.
+ * @param obj the object
* @exception ELdapException if any LDAP exceptions occured.
* @return the DN of the entry.
- */
- public String map(LDAPConnection conn, X500Name x500name,
- byte[] obj)
- throws ELdapException {
+ */
+ public String map(LDAPConnection conn, X500Name x500name, byte[] obj)
+ throws ELdapException {
try {
if (conn == null)
return null;
@@ -234,17 +222,17 @@ public class LdapDNCompsMap
if (dn == null) {
// #362332
// if (filter == null) {
- // log(ILogger.LL_FAILURE, "No dn and filter formed");
- // throw new ELdapException(
- // LdapResources.NO_DN_AND_FILTER_COMPS,
- // x500name.toString());
+ // log(ILogger.LL_FAILURE, "No dn and filter formed");
+ // throw new ELdapException(
+ // LdapResources.NO_DN_AND_FILTER_COMPS,
+ // x500name.toString());
// }
if (mBaseDN == null) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_NO_BASE"));
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_NO_DN_COMPS_AND_BASEDN",
- x500name.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_NO_BASE"));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_DN_COMPS_AND_BASEDN",
+ x500name.toString()));
}
dn = mBaseDN;
}
@@ -260,53 +248,57 @@ public class LdapDNCompsMap
attrs = new String[] { LDAPv3.NO_ATTRS };
- log(ILogger.LL_INFO, "searching for " + dn + " " + filter + " " +
- ((scope == LDAPv2.SCOPE_SUB) ? "sub" : "base"));
+ log(ILogger.LL_INFO, "searching for " + dn + " " + filter + " "
+ + ((scope == LDAPv2.SCOPE_SUB) ? "sub" : "base"));
- LDAPSearchResults results =
- conn.search(dn, scope, filter, attrs, false);
+ LDAPSearchResults results = conn.search(dn, scope, filter, attrs,
+ false);
LDAPEntry entry = results.next();
if (results.hasMoreElements()) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_MORE_THAN_ONE_ENTRY", "", x500name.toString()));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_MORE_THAN_ONE_ENTRY",
- x500name.toString()));
+ log(ILogger.LL_FAILURE, CMS.getLogMessage(
+ "PUBLISH_MORE_THAN_ONE_ENTRY", "", x500name.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_MORE_THAN_ONE_ENTRY", x500name.toString()));
}
if (entry != null) {
return entry.getDN();
} else {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_ENTRY_NOT_FOUND", "", x500name.toString()));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_NO_MATCH_FOUND",
- "null entry"));
+ log(ILogger.LL_FAILURE, CMS.getLogMessage(
+ "PUBLISH_ENTRY_NOT_FOUND", "", x500name.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_MATCH_FOUND", "null entry"));
}
} catch (LDAPException e) {
if (e.getLDAPResultCode() == LDAPException.UNAVAILABLE) {
// need to intercept this because message from LDAP is
// "DSA is unavailable" which confuses with DSA PKI.
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_NO_LDAP_SERVER"));
- throw new ELdapServerDownException(CMS.getUserMessage("CMS_LDAP_SERVER_UNAVAILABLE", conn.getHost(), "" + conn.getPort()));
+ CMS.getLogMessage("PUBLISH_NO_LDAP_SERVER"));
+ throw new ELdapServerDownException(CMS.getUserMessage(
+ "CMS_LDAP_SERVER_UNAVAILABLE", conn.getHost(), ""
+ + conn.getPort()));
} else {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_DN_MAP_EXCEPTION", "LDAPException", e.toString()));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_NO_MATCH_FOUND", e.toString()));
+ log(ILogger.LL_FAILURE, CMS.getLogMessage(
+ "PUBLISH_DN_MAP_EXCEPTION", "LDAPException",
+ e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_MATCH_FOUND", e.toString()));
}
}
}
private void log(int level, String msg) {
mLogger.log(ILogger.EV_SYSTEM, ILogger.S_LDAP, level,
- "LdapDNCompsMap: " + msg);
+ "LdapDNCompsMap: " + msg);
}
/**
* form a dn and filter from component in the cert subject name
+ *
* @param subjName subject name
*/
- public String[] formDNandFilter(X500Name subjName)
- throws ELdapException {
+ public String[] formDNandFilter(X500Name subjName) throws ELdapException {
Vector dnRdns = new Vector();
SearchFilter filter = new SearchFilter();
X500NameAttrMap attrMap = X500NameAttrMap.getDefault();
@@ -327,17 +319,16 @@ public class LdapDNCompsMap
if (oid == EOid) {
DerValue val = ava.getValue();
AVA newAVA = new AVA(mailOid, val);
- RDN newRDN = new RDN(new AVA[] { newAVA }
- );
+ RDN newRDN = new RDN(new AVA[] { newAVA });
- CMS.debug(
- "LdapDNCompsMap: Converted " + rdn.toLdapDNString() + " to " +
- newRDN.toLdapDNString() + " in DN");
+ CMS.debug("LdapDNCompsMap: Converted "
+ + rdn.toLdapDNString() + " to "
+ + newRDN.toLdapDNString() + " in DN");
rdn = newRDN;
}
dnRdns.addElement(rdn);
- CMS.debug(
- "LdapDNCompsMap: adding dn comp " + rdn.toLdapDNString());
+ CMS.debug("LdapDNCompsMap: adding dn comp "
+ + rdn.toLdapDNString());
break;
}
}
@@ -347,31 +338,32 @@ public class LdapDNCompsMap
DerValue val = ava.getValue();
AVA newAVA = new AVA(mailOid, val);
- CMS.debug(
- "LdapDNCompsMap: Converted " + ava.toLdapDNString() + " to " +
- newAVA.toLdapDNString() + " in filter");
+ CMS.debug("LdapDNCompsMap: Converted "
+ + ava.toLdapDNString() + " to "
+ + newAVA.toLdapDNString() + " in filter");
ava = newAVA;
}
filter.addElement(ava.toLdapDNString());
- CMS.debug(
- "LdapDNCompsMap: adding filter comp " + ava.toLdapDNString());
+ CMS.debug("LdapDNCompsMap: adding filter comp "
+ + ava.toLdapDNString());
break;
}
}
- // XXX should be an error when string is null?
+ // XXX should be an error when string is null?
// return to caller to decide.
if (dnRdns.size() != 0) {
dnStr = new X500Name(dnRdns).toLdapDNString();
- }
+ }
if (filter.size() != 0) {
filterStr = filter.toFilterString();
}
}
} catch (IOException e) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_FROM_SUBJ_TO_DN", e.toString()));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_FORM_DN_COMPS_FAILED", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_FROM_SUBJ_TO_DN", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_FORM_DN_COMPS_FAILED", e.toString()));
}
return new String[] { dnStr, filterStr };
@@ -386,8 +378,8 @@ public class LdapDNCompsMap
}
/**
- * class for forming search filters for ldap searching from
- * name=value components. components are anded.
+ * class for forming search filters for ldap searching from name=value
+ * components. components are anded.
*/
public static class SearchFilter extends Vector {
/**
@@ -415,21 +407,22 @@ public class LdapDNCompsMap
}
/**
- * useful routine for parsing components given as string to
- * arrays of objectidentifiers.
- * The string is expected to be comma separated AVA attribute names.
- * For example, "uid,cn,o,ou". Attribute names are case insensitive.
+ * useful routine for parsing components given as string to arrays of
+ * objectidentifiers. The string is expected to be comma separated AVA
+ * attribute names. For example, "uid,cn,o,ou". Attribute names are case
+ * insensitive.
+ *
* @param val the string specifying the comps
* @exception ELdapException if any error occurs.
*/
public static ObjectIdentifier[] getCompsFromString(String val)
- throws ELdapException {
+ throws ELdapException {
StringTokenizer tokens;
ObjectIdentifier[] comps;
String attr;
ObjectIdentifier oid;
- if (val == null || val.length() == 0)
+ if (val == null || val.length() == 0)
return new ObjectIdentifier[0];
tokens = new StringTokenizer(val, ", \t\n\r");
@@ -442,18 +435,17 @@ public class LdapDNCompsMap
while (tokens.hasMoreTokens()) {
attr = tokens.nextToken().trim();
// mail -> E hack to look for E in subject names.
- if (attr.equalsIgnoreCase("mail"))
+ if (attr.equalsIgnoreCase("mail"))
attr = "E";
oid = X500NameAttrMap.getDefault().getOid(attr);
if (oid != null) {
comps[i++] = oid;
} else {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_UNKNOWN_ATTR_IN_DN_FILTER_COMPS", attr));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_UNKNOWN_ATTR_IN_DN_FILTER_COMPS", attr));
}
}
return comps;
}
}
-
diff --git a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapEnhancedMap.java b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapEnhancedMap.java
index c3c269515..a19e3c21a 100644
--- a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapEnhancedMap.java
+++ b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapEnhancedMap.java
@@ -20,7 +20,6 @@
package com.netscape.cms.publish.mappers;
-
///////////////////////
// import statements //
///////////////////////
@@ -56,38 +55,29 @@ import com.netscape.certsrv.logging.ILogger;
import com.netscape.certsrv.publish.ILdapMapper;
import com.netscape.certsrv.request.IRequest;
-
//////////////////////
// class definition //
//////////////////////
-/**
- * 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.
- *
+/**
+ * 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$, $Date$
*/
-public class LdapEnhancedMap
- implements ILdapMapper, IExtendedPluginInfo {
- ////////////////////////
+public class LdapEnhancedMap implements ILdapMapper, IExtendedPluginInfo {
+ // //////////////////////
// default parameters //
- ////////////////////////
-
-
+ // //////////////////////
- //////////////////////////////////////
+ // ////////////////////////////////////
// local LdapEnhancedMap parameters //
- //////////////////////////////////////
+ // ////////////////////////////////////
private boolean mInited = false;
@@ -102,14 +92,14 @@ public class LdapEnhancedMap
protected String[] mLdapValues = null;
- ////////////////////////////
+ // //////////////////////////
// ILdapMapper parameters //
- ////////////////////////////
+ // //////////////////////////
/* mapper plug-in fields */
- protected static final String PROP_DNPATTERN = "dnPattern";
+ protected static final String PROP_DNPATTERN = "dnPattern";
protected static final String PROP_CREATE = "createEntry";
- // the object class of the entry to be created. xxxx not done yet
+ // the object class of the entry to be created. xxxx not done yet
protected static final String PROP_OBJCLASS = "objectClass";
// req/cert/ext attribute --> directory attribute table
protected static final String PROP_ATTRNUM = "attrNum";
@@ -119,10 +109,10 @@ public class LdapEnhancedMap
/* mapper plug-in fields initialization values */
private static final int DEFAULT_NUM_ATTRS = 1;
- /* Holds mapper plug-in fields accepted by this implementation.
- * This list is passed to the configuration console so configuration
- * for instances of this implementation can be configured through the
- * console.
+ /*
+ * Holds mapper plug-in fields accepted by this implementation. This list is
+ * passed to the configuration console so configuration for instances of
+ * this implementation can be configured through the console.
*/
private static Vector defaultParams = new Vector();
@@ -145,9 +135,8 @@ public class LdapEnhancedMap
/* miscellaneous constants local to this mapper plug-in */
// default dn pattern if left blank or not set in the config
- public static final String DEFAULT_DNPATTERN =
- "UID=$req.HTTP_PARAMS.UID, " +
- "OU=people, O=$subj.o, C=$subj.c";
+ public static final String DEFAULT_DNPATTERN = "UID=$req.HTTP_PARAMS.UID, "
+ + "OU=people, O=$subj.o, C=$subj.c";
private static final int MAX_ATTRS = 10;
protected static final int DEFAULT_ATTRNUM = 1;
@@ -155,21 +144,19 @@ public class LdapEnhancedMap
protected IConfigStore mConfig = null;
protected AVAPattern[] mPatterns = null;
- ////////////////////////////////////
+ // //////////////////////////////////
// IExtendedPluginInfo parameters //
- ////////////////////////////////////
+ // //////////////////////////////////
-
-
- ///////////////////////
+ // /////////////////////
// Logger parameters //
- ///////////////////////
+ // /////////////////////
private ILogger mLogger = CMS.getLogger();
- /////////////////////
+ // ///////////////////
// default methods //
- /////////////////////
+ // ///////////////////
/**
* Default constructor, initialization must follow.
@@ -177,22 +164,20 @@ public class LdapEnhancedMap
public LdapEnhancedMap() {
}
- ///////////////////////////////////
+ // /////////////////////////////////
// local LdapEnhancedMap methods //
- ///////////////////////////////////
+ // /////////////////////////////////
/**
* common initialization routine.
*/
- protected void init(String dnPattern)
- throws EBaseException {
+ protected void init(String dnPattern) throws EBaseException {
if (mInited) {
return;
}
mDnPattern = dnPattern;
- if (mDnPattern == null ||
- mDnPattern.length() == 0) {
+ if (mDnPattern == null || mDnPattern.length() == 0) {
mDnPattern = DEFAULT_DNPATTERN;
}
@@ -202,11 +187,10 @@ public class LdapEnhancedMap
String[] mCertAttrs = mPattern.getCertAttrs();
} catch (ELdapException e) {
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_DN_PATTERN_INIT",
- dnPattern, e.toString()));
- throw new EBaseException(
- "falied to init with pattern " +
- dnPattern + " " + e);
+ CMS.getLogMessage("PUBLISH_DN_PATTERN_INIT", dnPattern,
+ e.toString()));
+ throw new EBaseException("falied to init with pattern " + dnPattern
+ + " " + e);
}
mInited = true;
@@ -214,60 +198,52 @@ public class LdapEnhancedMap
/**
* form a dn from component in the request and cert subject name
+ *
* @param req The request
* @param obj The certificate or crl
*/
- private String formDN(IRequest req, Object obj)
- throws EBaseException {
+ private String formDN(IRequest req, Object obj) throws EBaseException {
CertificateExtensions certExt = null;
X500Name subjectDN = null;
try {
X509Certificate cert = (X509Certificate) obj;
- subjectDN =
- (X500Name) ((X509Certificate) cert).getSubjectDN();
- CMS.debug(
- "LdapEnhancedMap: cert subject dn:" +
- subjectDN.toString());
+ subjectDN = (X500Name) ((X509Certificate) cert).getSubjectDN();
+ CMS.debug("LdapEnhancedMap: cert subject dn:"
+ + subjectDN.toString());
+
+ // certExt = (CertificateExtensions)
+ // ((X509CertImpl)cert).get(
+ // X509CertInfo.EXTENSIONS);
+ X509CertInfo info = (X509CertInfo) ((X509CertImpl) cert)
+ .get(X509CertImpl.NAME + "." + X509CertImpl.INFO);
- //certExt = (CertificateExtensions)
- // ((X509CertImpl)cert).get(
- // X509CertInfo.EXTENSIONS);
- X509CertInfo info = (X509CertInfo)
- ((X509CertImpl) cert).get(
- X509CertImpl.NAME +
- "." +
- X509CertImpl.INFO);
-
- certExt = (CertificateExtensions)
- info.get(CertificateExtensions.NAME);
+ certExt = (CertificateExtensions) info
+ .get(CertificateExtensions.NAME);
} catch (java.security.cert.CertificateParsingException e) {
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
+ CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
} catch (IOException e) {
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
+ CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
} catch (java.security.cert.CertificateException e) {
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
+ CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
} catch (ClassCastException e) {
try {
X509CRLImpl crl = (X509CRLImpl) obj;
- subjectDN = (X500Name)
- ((X509CRLImpl) crl).getIssuerDN();
+ subjectDN = (X500Name) ((X509CRLImpl) crl).getIssuerDN();
- CMS.debug(
- "LdapEnhancedMap: crl issuer dn: " +
+ CMS.debug("LdapEnhancedMap: crl issuer dn: " +
- subjectDN.toString());
+ subjectDN.toString());
} catch (ClassCastException ex) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_PUBLISH_OBJ_NOT_SUPPORTED",
- ((req == null) ? ""
- : req.getRequestId().toString())));
+ log(ILogger.LL_FAILURE, CMS.getLogMessage(
+ "PUBLISH_PUBLISH_OBJ_NOT_SUPPORTED",
+ ((req == null) ? "" : req.getRequestId().toString())));
return null;
}
}
@@ -277,10 +253,8 @@ public class LdapEnhancedMap
for (int i = 0; i < mNumAttrs; i++) {
if (mPatterns[i] != null) {
- mLdapValues[i] = mPatterns[i].formAVA(
- req,
- subjectDN,
- certExt);
+ mLdapValues[i] = mPatterns[i].formAVA(req, subjectDN,
+ certExt);
}
}
@@ -288,27 +262,22 @@ public class LdapEnhancedMap
return dn;
} catch (ELdapException e) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_CANT_FORM_DN",
- ((req == null) ? ""
- : req.getRequestId().toString()), e.toString()));
-
- throw new EBaseException(
- "failed to form dn for request: " +
- ((req == null) ? ""
- : req.getRequestId().toString()) +
- " " + e);
+ log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_CANT_FORM_DN",
+ ((req == null) ? "" : req.getRequestId().toString()),
+ e.toString()));
+
+ throw new EBaseException("failed to form dn for request: "
+ + ((req == null) ? "" : req.getRequestId().toString())
+ + " " + e);
}
}
private void createEntry(LDAPConnection conn, String dn)
- throws LDAPException {
+ throws LDAPException {
LDAPAttributeSet attrs = new LDAPAttributeSet();
// OID 2.5.6.16
- String caOc[] = { "top",
- "person",
- "organizationalPerson",
+ String caOc[] = { "top", "person", "organizationalPerson",
"inetOrgPerson" };
DN dnobj = new DN(dn);
@@ -319,12 +288,10 @@ public class LdapEnhancedMap
attrs.add(new LDAPAttribute("objectclass", caOc));
for (int i = 0; i < mNumAttrs; i++) {
- if (mLdapNames[i] != null &&
- !mLdapNames[i].trim().equals("") &&
- mLdapValues[i] != null &&
- !mLdapValues[i].trim().equals("")) {
- attrs.add(new LDAPAttribute(mLdapNames[i],
- mLdapValues[i]));
+ if (mLdapNames[i] != null && !mLdapNames[i].trim().equals("")
+ && mLdapValues[i] != null
+ && !mLdapValues[i].trim().equals("")) {
+ attrs.add(new LDAPAttribute(mLdapNames[i], mLdapValues[i]));
}
}
@@ -333,28 +300,23 @@ public class LdapEnhancedMap
conn.add(entry);
}
- /////////////////////////
+ // ///////////////////////
// ILdapMapper methods //
- /////////////////////////
+ // ///////////////////////
- /**
+ /**
* for initializing from config store.
- *
- * implementation for extended
- * ILdapPlugin interface method
+ *
+ * implementation for extended ILdapPlugin interface method
*/
- public void init(IConfigStore config)
- throws EBaseException {
+ public void init(IConfigStore config) throws EBaseException {
mConfig = config;
- mDnPattern = mConfig.getString(PROP_DNPATTERN,
- DEFAULT_DNPATTERN);
+ mDnPattern = mConfig.getString(PROP_DNPATTERN, DEFAULT_DNPATTERN);
- mCreateEntry = mConfig.getBoolean(PROP_CREATE,
- true);
+ mCreateEntry = mConfig.getBoolean(PROP_CREATE, true);
- mNumAttrs = mConfig.getInteger(PROP_ATTRNUM,
- 0);
+ mNumAttrs = mConfig.getInteger(PROP_ATTRNUM, 0);
mLdapNames = new String[mNumAttrs];
@@ -362,18 +324,13 @@ public class LdapEnhancedMap
mPatterns = new AVAPattern[mNumAttrs];
for (int i = 0; i < mNumAttrs; i++) {
- mLdapNames[i] =
- mConfig.getString(PROP_ATTR_NAME +
- Integer.toString(i),
- "");
-
- mLdapPatterns[i] =
- mConfig.getString(PROP_ATTR_PATTERN +
- Integer.toString(i),
- "");
-
- if (mLdapPatterns[i] != null &&
- !mLdapPatterns[i].trim().equals("")) {
+ mLdapNames[i] = mConfig.getString(
+ PROP_ATTR_NAME + Integer.toString(i), "");
+
+ mLdapPatterns[i] = mConfig.getString(
+ PROP_ATTR_PATTERN + Integer.toString(i), "");
+
+ if (mLdapPatterns[i] != null && !mLdapPatterns[i].trim().equals("")) {
mPatterns[i] = new AVAPattern(mLdapPatterns[i]);
}
}
@@ -381,9 +338,8 @@ public class LdapEnhancedMap
init(mDnPattern);
}
- /**
- * implementation for extended
- * ILdapPlugin interface method
+ /**
+ * implementation for extended ILdapPlugin interface method
*/
public IConfigStore getConfigStore() {
return mConfig;
@@ -407,34 +363,28 @@ public class LdapEnhancedMap
try {
if (mDnPattern == null) {
v.addElement(PROP_DNPATTERN + "=");
- }else {
- v.addElement(PROP_DNPATTERN + "=" +
- mConfig.getString(PROP_DNPATTERN));
+ } else {
+ v.addElement(PROP_DNPATTERN + "="
+ + mConfig.getString(PROP_DNPATTERN));
}
- v.addElement(PROP_CREATE + "=" +
- mConfig.getBoolean(PROP_CREATE,
- true));
+ v.addElement(PROP_CREATE + "="
+ + mConfig.getBoolean(PROP_CREATE, true));
- v.addElement(PROP_ATTRNUM + "=" +
- mConfig.getInteger(PROP_ATTRNUM,
- DEFAULT_NUM_ATTRS));
+ v.addElement(PROP_ATTRNUM + "="
+ + mConfig.getInteger(PROP_ATTRNUM, DEFAULT_NUM_ATTRS));
for (int i = 0; i < mNumAttrs; i++) {
if (mLdapNames[i] != null) {
- v.addElement(PROP_ATTR_NAME + i +
- "=" + mLdapNames[i]);
+ v.addElement(PROP_ATTR_NAME + i + "=" + mLdapNames[i]);
} else {
- v.addElement(PROP_ATTR_NAME + i +
- "=");
+ v.addElement(PROP_ATTR_NAME + i + "=");
}
if (mLdapPatterns[i] != null) {
- v.addElement(PROP_ATTR_PATTERN + i +
- "=" + mLdapPatterns[i]);
+ v.addElement(PROP_ATTR_PATTERN + i + "=" + mLdapPatterns[i]);
} else {
- v.addElement(PROP_ATTR_PATTERN + i +
- "=");
+ v.addElement(PROP_ATTR_PATTERN + i + "=");
}
}
} catch (Exception e) {
@@ -444,29 +394,28 @@ public class LdapEnhancedMap
}
/**
- * Maps an X500 subject name to an LDAP entry.
- * Uses DN pattern to form a DN for an LDAP base search.
+ * Maps an X500 subject name to an LDAP entry. Uses DN pattern to form a DN
+ * for an LDAP base search.
*
- * @param conn the LDAP connection.
- * @param obj the object to map.
- * @exception ELdapException if any LDAP exceptions occurred.
- */
- public String map(LDAPConnection conn, Object obj)
- throws ELdapException {
+ * @param conn the LDAP connection.
+ * @param obj the object to map.
+ * @exception ELdapException if any LDAP exceptions occurred.
+ */
+ public String map(LDAPConnection conn, Object obj) throws ELdapException {
return map(conn, null, obj);
}
/**
- * Maps an X500 subject name to an LDAP entry.
- * Uses DN pattern to form a DN for an LDAP base search.
+ * Maps an X500 subject name to an LDAP entry. Uses DN pattern to form a DN
+ * for an LDAP base search.
*
- * @param conn the LDAP connection.
- * @param req the request to map.
- * @param obj the object to map.
- * @exception ELdapException if any LDAP exceptions occurred.
- */
+ * @param conn the LDAP connection.
+ * @param req the request to map.
+ * @param obj the object to map.
+ * @exception ELdapException if any LDAP exceptions occurred.
+ */
public String map(LDAPConnection conn, IRequest req, Object obj)
- throws ELdapException {
+ throws ELdapException {
if (conn == null) {
return null;
}
@@ -477,14 +426,14 @@ public class LdapEnhancedMap
dn = formDN(req, obj);
if (dn == null) {
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_DN_NOT_FORMED"));
+ CMS.getLogMessage("PUBLISH_DN_NOT_FORMED"));
String s1 = "";
if (req != null)
s1 = req.getRequestId().toString();
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_NO_DN_MATCH", s1));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_DN_MATCH", s1));
}
int scope = LDAPv2.SCOPE_BASE;
@@ -493,155 +442,132 @@ public class LdapEnhancedMap
// search for entry
String[] attrs = new String[] { LDAPv3.NO_ATTRS };
- log(ILogger.LL_INFO,
- "searching for dn: " +
- dn + " filter:" +
- filter + " scope: base");
+ log(ILogger.LL_INFO, "searching for dn: " + dn + " filter:"
+ + filter + " scope: base");
- LDAPSearchResults results = conn.search(dn,
- scope,
- filter,
- attrs,
+ LDAPSearchResults results = conn.search(dn, scope, filter, attrs,
false);
LDAPEntry entry = results.next();
if (results.hasMoreElements()) {
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_MORE_THAN_ONE_ENTRY",
- dn +
- ((req == null) ? ""
- : req.getRequestId().toString())));
-
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_MORE_THAN_ONE_ENTRY",
- ((req == null) ? ""
- : req.getRequestId().toString())));
+ CMS.getLogMessage("PUBLISH_MORE_THAN_ONE_ENTRY", dn
+ + ((req == null) ? "" : req.getRequestId()
+ .toString())));
+
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_MORE_THAN_ONE_ENTRY", ((req == null) ? ""
+ : req.getRequestId().toString())));
}
if (entry != null) {
return entry.getDN();
} else {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_ENTRY_NOT_FOUND",
- dn +
- ((req == null) ? ""
- : req.getRequestId().toString())));
-
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_NO_MATCH_FOUND",
- "null entry"));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_ENTRY_NOT_FOUND", dn
+ + ((req == null) ? "" : req.getRequestId()
+ .toString())));
+
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_MATCH_FOUND", "null entry"));
}
} catch (LDAPException e) {
if (e.getLDAPResultCode() == LDAPException.UNAVAILABLE) {
// need to intercept this because message from LDAP is
// "DSA is unavailable" which confuses with DSA PKI.
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_NO_LDAP_SERVER"));
+ CMS.getLogMessage("PUBLISH_NO_LDAP_SERVER"));
- throw new ELdapServerDownException(CMS.getUserMessage("CMS_LDAP_SERVER_UNAVAILABLE", conn.getHost(), "" + conn.getPort()));
- } else if (e.getLDAPResultCode() ==
- LDAPException.NO_SUCH_OBJECT && mCreateEntry) {
+ throw new ELdapServerDownException(CMS.getUserMessage(
+ "CMS_LDAP_SERVER_UNAVAILABLE", conn.getHost(), ""
+ + conn.getPort()));
+ } else if (e.getLDAPResultCode() == LDAPException.NO_SUCH_OBJECT
+ && mCreateEntry) {
try {
createEntry(conn, dn);
- log(ILogger.LL_INFO,
- "Entry " +
- dn +
- " Created");
+ log(ILogger.LL_INFO, "Entry " + dn + " Created");
return dn;
} catch (LDAPException e1) {
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_DN_MAP_EXCEPTION",
- dn,
- e.toString()));
+ CMS.getLogMessage("PUBLISH_DN_MAP_EXCEPTION", dn,
+ e.toString()));
- log(ILogger.LL_FAILURE,
- "Entry is not created. " +
- "This may because there are " +
- "entries in the directory " +
- "hierachy not exit.");
+ log(ILogger.LL_FAILURE, "Entry is not created. "
+ + "This may because there are "
+ + "entries in the directory "
+ + "hierachy not exit.");
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_CREATE_ENTRY", dn));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_CREATE_ENTRY", dn));
}
} else {
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_DN_MAP_EXCEPTION",
- dn,
- e.toString()));
+ CMS.getLogMessage("PUBLISH_DN_MAP_EXCEPTION", dn,
+ e.toString()));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_NO_MATCH_FOUND", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_MATCH_FOUND", e.toString()));
}
} catch (EBaseException e) {
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_EXCEPTION_CAUGHT",
- e.toString()));
+ CMS.getLogMessage("PUBLISH_EXCEPTION_CAUGHT", e.toString()));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_NO_MATCH_FOUND", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_MATCH_FOUND", e.toString()));
}
}
- /////////////////////////////////
+ // ///////////////////////////////
// IExtendedPluginInfo methods //
- /////////////////////////////////
+ // ///////////////////////////////
public String[] getExtendedPluginInfo(Locale locale) {
Vector v = new Vector();
- v.addElement(PROP_DNPATTERN +
- ";string;Describes how to form the Ldap " +
- "Subject name in the directory. " +
- "Example 1: 'uid=CertMgr, o=Fedora'. " +
- "Example 2: 'uid=$req.HTTP_PARAMS.uid, " +
- "E=$ext.SubjectAlternativeName.RFC822Name, " +
- "ou=$subj.ou'. " +
- "$req means: take the attribute from the " +
- "request. " +
- "$subj means: take the attribute from the " +
- "certificate subject name. " +
- "$ext means: take the attribute from the " +
- "certificate extension");
- v.addElement(PROP_CREATE +
- ";boolean;If checked, An entry will be " +
- "created automatically");
- v.addElement(PROP_ATTRNUM +
- ";string;How many attributes to add.");
- v.addElement(IExtendedPluginInfo.HELP_TOKEN +
- ";configuration-ldappublish-mapper-enhancedmapper");
- v.addElement(IExtendedPluginInfo.HELP_TEXT +
- ";Describes how to form the LDAP DN of the " +
- "entry to publish to");
+ v.addElement(PROP_DNPATTERN + ";string;Describes how to form the Ldap "
+ + "Subject name in the directory. "
+ + "Example 1: 'uid=CertMgr, o=Fedora'. "
+ + "Example 2: 'uid=$req.HTTP_PARAMS.uid, "
+ + "E=$ext.SubjectAlternativeName.RFC822Name, "
+ + "ou=$subj.ou'. " + "$req means: take the attribute from the "
+ + "request. " + "$subj means: take the attribute from the "
+ + "certificate subject name. "
+ + "$ext means: take the attribute from the "
+ + "certificate extension");
+ v.addElement(PROP_CREATE + ";boolean;If checked, An entry will be "
+ + "created automatically");
+ v.addElement(PROP_ATTRNUM + ";string;How many attributes to add.");
+ v.addElement(IExtendedPluginInfo.HELP_TOKEN
+ + ";configuration-ldappublish-mapper-enhancedmapper");
+ v.addElement(IExtendedPluginInfo.HELP_TEXT
+ + ";Describes how to form the LDAP DN of the "
+ + "entry to publish to");
for (int i = 0; i < MAX_ATTRS; i++) {
- v.addElement(PROP_ATTR_NAME +
- Integer.toString(i) +
- ";string;" +
- "The name of LDAP attribute " +
- "to be added. e.g. mail");
- v.addElement(PROP_ATTR_PATTERN +
- Integer.toString(i) +
- ";string;" +
- "How to create the LDAP attribute value. " +
- "e.g. $req.HTTP_PARAMS.csrRequestorEmail, " +
- "$subj.E or " +
- "$ext.SubjectAlternativeName.RFC822Name");
+ v.addElement(PROP_ATTR_NAME + Integer.toString(i) + ";string;"
+ + "The name of LDAP attribute " + "to be added. e.g. mail");
+ v.addElement(PROP_ATTR_PATTERN + Integer.toString(i) + ";string;"
+ + "How to create the LDAP attribute value. "
+ + "e.g. $req.HTTP_PARAMS.csrRequestorEmail, "
+ + "$subj.E or " + "$ext.SubjectAlternativeName.RFC822Name");
}
- String params[] =
- com.netscape.cmsutil.util.Utils.getStringArrayFromVector(v);
+ String params[] = com.netscape.cmsutil.util.Utils
+ .getStringArrayFromVector(v);
return params;
}
- ////////////////////
+ // //////////////////
// Logger methods //
- ////////////////////
+ // //////////////////
private void log(int level, String msg) {
mLogger.log(ILogger.EV_SYSTEM, ILogger.S_LDAP, level,
- "LdapEnhancedMapper: " + msg);
+ "LdapEnhancedMapper: " + msg);
}
}
-
diff --git a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapSimpleMap.java b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapSimpleMap.java
index c08ec8493..212f7237d 100644
--- a/pki/base/common/src/com/netscape/cms/publish/mappers/LdapSimpleMap.java
+++ b/pki/base/common/src/com/netscape/cms/publish/mappers/LdapSimpleMap.java
@@ -17,7 +17,6 @@
// --- END COPYRIGHT BLOCK ---
package com.netscape.cms.publish.mappers;
-
import java.io.IOException;
import java.security.cert.X509Certificate;
import java.util.Locale;
@@ -45,19 +44,17 @@ import com.netscape.certsrv.logging.ILogger;
import com.netscape.certsrv.publish.ILdapMapper;
import com.netscape.certsrv.request.IRequest;
-
-/**
- * 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.Do 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.
- *
+/**
+ * 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.Do 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.
+ *
* @version $Revision$, $Date$
*/
public class LdapSimpleMap implements ILdapMapper, IExtendedPluginInfo {
- protected static final String PROP_DNPATTERN = "dnPattern";
+ protected static final String PROP_DNPATTERN = "dnPattern";
protected String mDnPattern = null;
private ILogger mLogger = CMS.getLogger();
@@ -67,28 +64,28 @@ public class LdapSimpleMap implements ILdapMapper, IExtendedPluginInfo {
/* the subject DN pattern */
protected MapDNPattern mPattern = null;
- /* the list of request attriubutes to retrieve*/
+ /* the list of request attriubutes to retrieve */
protected String[] mReqAttrs = null;
- /* the list of cert attriubutes to retrieve*/
+ /* the list of cert attriubutes to retrieve */
protected String[] mCertAttrs = null;
/* default dn pattern if left blank or not set in the config */
- public static final String DEFAULT_DNPATTERN =
- "UID=$req.HTTP_PARAMS.UID, OU=people, O=$subj.o, C=$subj.c";
+ public static final String DEFAULT_DNPATTERN = "UID=$req.HTTP_PARAMS.UID, OU=people, O=$subj.o, C=$subj.c";
- /**
+ /**
* Constructor.
- *
- * @param dnPattern The base DN.
+ *
+ * @param dnPattern The base DN.
*/
public LdapSimpleMap(String dnPattern) {
try {
init(dnPattern);
} catch (EBaseException e) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("OPERATION_ERROR", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("OPERATION_ERROR", e.toString()));
}
-
+
}
/**
@@ -99,15 +96,16 @@ public class LdapSimpleMap implements ILdapMapper, IExtendedPluginInfo {
public String[] getExtendedPluginInfo(Locale locale) {
String params[] = {
- "dnPattern;string;Describes how to form the Ldap Subject name in" +
- " the directory. Example 1: 'uid=CertMgr, o=Fedora'. Example 2:" +
- " 'uid=$req.HTTP_PARAMS.uid, E=$ext.SubjectAlternativeName.RFC822Name, ou=$subj.ou'. " +
- "$req means: take the attribute from the request. " +
- "$subj means: take the attribute from the certificate subject name. " +
- "$ext means: take the attribute from the certificate extension",
- IExtendedPluginInfo.HELP_TOKEN + ";configuration-ldappublish-mapper-simplemapper",
- IExtendedPluginInfo.HELP_TEXT + ";Describes how to form the LDAP DN of the entry to publish to"
- };
+ "dnPattern;string;Describes how to form the Ldap Subject name in"
+ + " the directory. Example 1: 'uid=CertMgr, o=Fedora'. Example 2:"
+ + " 'uid=$req.HTTP_PARAMS.uid, E=$ext.SubjectAlternativeName.RFC822Name, ou=$subj.ou'. "
+ + "$req means: take the attribute from the request. "
+ + "$subj means: take the attribute from the certificate subject name. "
+ + "$ext means: take the attribute from the certificate extension",
+ IExtendedPluginInfo.HELP_TOKEN
+ + ";configuration-ldappublish-mapper-simplemapper",
+ IExtendedPluginInfo.HELP_TEXT
+ + ";Describes how to form the LDAP DN of the entry to publish to" };
return params;
}
@@ -116,11 +114,10 @@ public class LdapSimpleMap implements ILdapMapper, IExtendedPluginInfo {
return mConfig;
}
- /**
+ /**
* for initializing from config store.
*/
- public void init(IConfigStore config)
- throws EBaseException {
+ public void init(IConfigStore config) throws EBaseException {
mConfig = config;
String dnPattern = mConfig.getString(PROP_DNPATTERN);
@@ -130,52 +127,51 @@ public class LdapSimpleMap implements ILdapMapper, IExtendedPluginInfo {
/**
* common initialization routine.
*/
- protected void init(String dnPattern)
- throws EBaseException {
- if (mInited)
+ protected void init(String dnPattern) throws EBaseException {
+ if (mInited)
return;
mDnPattern = dnPattern;
- if (mDnPattern == null || mDnPattern.length() == 0)
+ if (mDnPattern == null || mDnPattern.length() == 0)
mDnPattern = DEFAULT_DNPATTERN;
try {
mPattern = new MapDNPattern(mDnPattern);
String[] mReqAttrs = mPattern.getReqAttrs();
String[] mCertAttrs = mPattern.getCertAttrs();
} catch (ELdapException e) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_DN_PATTERN_INIT",
- dnPattern, e.toString()));
- throw new EBaseException("falied to init with pattern " +
- dnPattern + " " + e);
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_DN_PATTERN_INIT", dnPattern,
+ e.toString()));
+ throw new EBaseException("falied to init with pattern " + dnPattern
+ + " " + e);
}
mInited = true;
}
/**
- * Maps a X500 subject name to LDAP entry.
- * Uses DN pattern to form a DN for a LDAP base search.
+ * Maps a X500 subject name to LDAP entry. Uses DN pattern to form a DN for
+ * a LDAP base search.
*
- * @param conn the LDAP connection.
- * @param obj the object to map.
+ * @param conn the LDAP connection.
+ * @param obj the object to map.
* @exception ELdapException if any LDAP exceptions occured.
- */
- public String map(LDAPConnection conn, Object obj)
- throws ELdapException {
+ */
+ public String map(LDAPConnection conn, Object obj) throws ELdapException {
return map(conn, null, obj);
}
/**
- * Maps a X500 subject name to LDAP entry.
- * Uses DN pattern to form a DN for a LDAP base search.
+ * Maps a X500 subject name to LDAP entry. Uses DN pattern to form a DN for
+ * a LDAP base search.
*
- * @param conn the LDAP connection.
- * @param req the request to map.
- * @param obj the object to map.
+ * @param conn the LDAP connection.
+ * @param req the request to map.
+ * @param obj the object to map.
* @exception ELdapException if any LDAP exceptions occured.
- */
+ */
public String map(LDAPConnection conn, IRequest req, Object obj)
- throws ELdapException {
+ throws ELdapException {
if (conn == null)
return null;
String dn = null;
@@ -183,13 +179,14 @@ public class LdapSimpleMap implements ILdapMapper, IExtendedPluginInfo {
try {
dn = formDN(req, obj);
if (dn == null) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_DN_NOT_FORMED"));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_DN_NOT_FORMED"));
String s1 = "";
if (req != null)
s1 = req.getRequestId().toString();
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_NO_DN_MATCH", s1));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_DN_MATCH", s1));
}
int scope = LDAPv2.SCOPE_BASE;
String filter = "(objectclass=*)";
@@ -198,24 +195,28 @@ public class LdapSimpleMap implements ILdapMapper, IExtendedPluginInfo {
String[] attrs = new String[] { LDAPv3.NO_ATTRS };
log(ILogger.LL_INFO, "searching for dn: " + dn + " filter:"
- + filter + " scope: base");
+ + filter + " scope: base");
- LDAPSearchResults results =
- conn.search(dn, scope, filter, attrs, false);
+ LDAPSearchResults results = conn.search(dn, scope, filter, attrs,
+ false);
LDAPEntry entry = results.next();
if (results.hasMoreElements()) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_MORE_THAN_ONE_ENTRY", dn, ((req == null) ? "" : req.getRequestId().toString())));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_MORE_THAN_ONE_ENTRY",
- ((req == null) ? "" : req.getRequestId().toString())));
+ log(ILogger.LL_FAILURE, CMS.getLogMessage(
+ "PUBLISH_MORE_THAN_ONE_ENTRY", dn, ((req == null) ? ""
+ : req.getRequestId().toString())));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_MORE_THAN_ONE_ENTRY", ((req == null) ? ""
+ : req.getRequestId().toString())));
}
if (entry != null)
return entry.getDN();
else {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_ENTRY_NOT_FOUND", dn, ((req == null) ? "" : req.getRequestId().toString())));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_NO_MATCH_FOUND",
- "null entry"));
+ log(ILogger.LL_FAILURE, CMS.getLogMessage(
+ "PUBLISH_ENTRY_NOT_FOUND", dn, ((req == null) ? ""
+ : req.getRequestId().toString())));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_MATCH_FOUND", "null entry"));
}
} catch (ELdapException e) {
throw e;
@@ -224,61 +225,69 @@ public class LdapSimpleMap implements ILdapMapper, IExtendedPluginInfo {
// need to intercept this because message from LDAP is
// "DSA is unavailable" which confuses with DSA PKI.
log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_NO_LDAP_SERVER"));
- throw new ELdapServerDownException(CMS.getUserMessage("CMS_LDAP_SERVER_UNAVAILABLE", conn.getHost(), "" + conn.getPort()));
+ CMS.getLogMessage("PUBLISH_NO_LDAP_SERVER"));
+ throw new ELdapServerDownException(CMS.getUserMessage(
+ "CMS_LDAP_SERVER_UNAVAILABLE", conn.getHost(), ""
+ + conn.getPort()));
} else {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_DN_MAP_EXCEPTION", "", e.toString()));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_NO_MATCH_FOUND", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_DN_MAP_EXCEPTION", "",
+ e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_MATCH_FOUND", e.toString()));
}
} catch (EBaseException e) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_EXCEPTION_CAUGHT", e.toString()));
- throw new ELdapException(CMS.getUserMessage("CMS_LDAP_NO_MATCH_FOUND", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_EXCEPTION_CAUGHT", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_MATCH_FOUND", e.toString()));
}
}
/**
* form a dn from component in the request and cert subject name
+ *
* @param req The request
* @param obj The certificate or crl
*/
- private String formDN(IRequest req, Object obj) throws
- EBaseException, ELdapException {
+ private String formDN(IRequest req, Object obj) throws EBaseException,
+ ELdapException {
X500Name subjectDN = null;
CertificateExtensions certExt = null;
try {
X509Certificate cert = (X509Certificate) obj;
- subjectDN =
- (X500Name) ((X509Certificate) cert).getSubjectDN();
+ subjectDN = (X500Name) ((X509Certificate) cert).getSubjectDN();
CMS.debug("LdapSimpleMap: cert subject dn:" + subjectDN.toString());
- //certExt = (CertificateExtensions)
- // ((X509CertImpl)cert).get(X509CertInfo.EXTENSIONS);
- X509CertInfo info = (X509CertInfo)
- ((X509CertImpl) cert).get(
- X509CertImpl.NAME + "." + X509CertImpl.INFO);
-
- certExt = (CertificateExtensions) info.get(
- CertificateExtensions.NAME);
+ // certExt = (CertificateExtensions)
+ // ((X509CertImpl)cert).get(X509CertInfo.EXTENSIONS);
+ X509CertInfo info = (X509CertInfo) ((X509CertImpl) cert)
+ .get(X509CertImpl.NAME + "." + X509CertImpl.INFO);
+
+ certExt = (CertificateExtensions) info
+ .get(CertificateExtensions.NAME);
} catch (java.security.cert.CertificateParsingException e) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
} catch (IOException e) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
} catch (java.security.cert.CertificateException e) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
+ log(ILogger.LL_FAILURE,
+ CMS.getLogMessage("PUBLISH_CANT_GET_EXT", e.toString()));
} catch (ClassCastException e) {
try {
X509CRLImpl crl = (X509CRLImpl) obj;
- subjectDN =
- (X500Name) ((X509CRLImpl) crl).getIssuerDN();
+ subjectDN = (X500Name) ((X509CRLImpl) crl).getIssuerDN();
- CMS.debug("LdapSimpleMap: crl issuer dn: " +
- subjectDN.toString());
- }catch (ClassCastException ex) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("PUBLISH_PUBLISH_OBJ_NOT_SUPPORTED",
+ CMS.debug("LdapSimpleMap: crl issuer dn: "
+ + subjectDN.toString());
+ } catch (ClassCastException ex) {
+ log(ILogger.LL_FAILURE, CMS.getLogMessage(
+ "PUBLISH_PUBLISH_OBJ_NOT_SUPPORTED",
((req == null) ? "" : req.getRequestId().toString())));
return null;
}
@@ -289,7 +298,8 @@ public class LdapSimpleMap implements ILdapMapper, IExtendedPluginInfo {
return dn;
} catch (ELdapException e) {
log(ILogger.LL_FAILURE, CMS.getLogMessage("PUBLISH_CANT_FORM_DN",
- ((req == null) ? "" : req.getRequestId().toString()), e.toString()));
+ ((req == null) ? "" : req.getRequestId().toString()),
+ e.toString()));
throw e;
}
}
@@ -315,9 +325,9 @@ public class LdapSimpleMap implements ILdapMapper, IExtendedPluginInfo {
try {
if (mDnPattern == null) {
v.addElement(PROP_DNPATTERN + "=");
- }else {
- v.addElement(PROP_DNPATTERN + "=" +
- mConfig.getString(PROP_DNPATTERN));
+ } else {
+ v.addElement(PROP_DNPATTERN + "="
+ + mConfig.getString(PROP_DNPATTERN));
}
} catch (Exception e) {
}
@@ -326,8 +336,7 @@ public class LdapSimpleMap implements ILdapMapper, IExtendedPluginInfo {
private void log(int level, String msg) {
mLogger.log(ILogger.EV_SYSTEM, ILogger.S_LDAP, level,
- "LdapSimpleMapper: " + msg);
+ "LdapSimpleMapper: " + msg);
}
}
-
diff --git a/pki/base/common/src/com/netscape/cms/publish/mappers/MapAVAPattern.java b/pki/base/common/src/com/netscape/cms/publish/mappers/MapAVAPattern.java
index 265030401..41cc5308e 100644
--- a/pki/base/common/src/com/netscape/cms/publish/mappers/MapAVAPattern.java
+++ b/pki/base/common/src/com/netscape/cms/publish/mappers/MapAVAPattern.java
@@ -17,7 +17,6 @@
// --- END COPYRIGHT BLOCK ---
package com.netscape.cms.publish.mappers;
-
import java.io.IOException;
import java.io.PushbackReader;
import java.io.StringReader;
@@ -41,26 +40,28 @@ import com.netscape.certsrv.ldap.ELdapException;
import com.netscape.certsrv.publish.ECompSyntaxErr;
import com.netscape.certsrv.request.IRequest;
-
/**
- * class for parsing a DN pattern used to construct a ldap dn from
- * request attributes and cert subject name.<p>
+ * class for parsing a DN pattern used to construct a ldap dn from request
+ * attributes and cert subject name.
+ * <p>
+ *
+ * dnpattern is a string representing a ldap dn pattern to formulate from the
+ * certificate subject name attributes and request attributes . If empty or not
+ * set, the certificate subject name will be used as the ldap dn.
+ * <p>
*
- * dnpattern is a string representing a ldap dn pattern to formulate from
- * the certificate subject name attributes and request attributes .
- * If empty or not set, the certificate subject name
- * will be used as the ldap dn. <p>
+ * The syntax is
*
- * The syntax is
* <pre>
- * dnPattern := rdnPattern *[ "," rdnPattern ]
- * rdnPattern := avaPattern *[ "+" avaPattern ]
+ * dnPattern := rdnPattern *[ "," rdnPattern ]
+ * rdnPattern := avaPattern *[ "+" avaPattern ]
* avaPattern := name "=" value |
- * name "=" "$subj" "." attrName [ "." attrNumber ] |
- * name "=" "$ext" "." extName [ "." nameType ] [ "." attrNumber ]
- * name "=" "$req" "." attrName [ "." attrNumber ] |
- * "$rdn" "." number
+ * name "=" "$subj" "." attrName [ "." attrNumber ] |
+ * name "=" "$ext" "." extName [ "." nameType ] [ "." attrNumber ]
+ * name "=" "$req" "." attrName [ "." attrNumber ] |
+ * "$rdn" "." number
* </pre>
+ *
* <pre>
* Example1: <i>cn=Certificate Manager,ou=people,o=mcom.com</i>
* cert subject name: dn: CN=Certificate Manager, OU=people, O=mcom.com
@@ -71,7 +72,7 @@ import com.netscape.certsrv.request.IRequest;
* <p>
* note: Subordinate ca enrollment will use ca mapper. Use predicate
* to distinguish the ca itself and the subordinates.
- *
+ *
* Example2: <i>UID=$req.HTTP_PARAMS.uid, OU=$subj.ou, OU=people, , O=mcom.com</i>
* cert subject name: dn: UID=jjames, OU=IS, OU=people, , O=mcom.com
* request attributes: uid: cmanager
@@ -96,10 +97,10 @@ import com.netscape.certsrv.request.IRequest;
* O = the string mcom.com. <br>
* <p>
* </pre>
- * If an request attribute or subject DN component does not exist,
- * the attribute is skipped. There is potential risk that a wrong dn
- * will be mapped into.
- *
+ *
+ * If an request attribute or subject DN component does not exist, the attribute
+ * is skipped. There is potential risk that a wrong dn will be mapped into.
+ *
* @version $Revision$, $Date$
*/
class MapAVAPattern {
@@ -111,34 +112,29 @@ class MapAVAPattern {
public static final String TYPE_RDN = "$rdn";
public static final String TYPE_CONSTANT = "constant";
- public static final String[] GENERAL_NAME_TYPE = { "ANY",
- "RFC822Name",
- "DNSName",
- "X400Name",
- "DIRECTORYName",
- "EDIName",
- "URIName",
- "IPAddress",
- "OIDName"};
+ public static final String[] GENERAL_NAME_TYPE = { "ANY", "RFC822Name",
+ "DNSName", "X400Name", "DIRECTORYName", "EDIName", "URIName",
+ "IPAddress", "OIDName" };
private static final char[] endChars = new char[] { '+', ',' };
- private static final LdapV3DNStrConverter mLdapDNStrConverter =
- new LdapV3DNStrConverter();
+ private static final LdapV3DNStrConverter mLdapDNStrConverter = new LdapV3DNStrConverter();
- /* the list of request attributes needed by this AVA */
+ /* the list of request attributes needed by this AVA */
protected String[] mReqAttrs = null;
- /* the list of cert attributes needed by this AVA*/
+ /* the list of cert attributes needed by this AVA */
protected String[] mCertAttrs = null;
/* value type */
protected String mType = null;
/* the attribute in the AVA pair */
- protected String mAttr = null;
+ protected String mAttr = null;
- /* value - could be name of a request attribute or
- * cert subject dn attribute. */
+ /*
+ * value - could be name of a request attribute or cert subject dn
+ * attribute.
+ */
protected String mValue = null;
/* value type - general name type of an extension attribute if any. */
@@ -152,192 +148,202 @@ class MapAVAPattern {
protected String mTestDN = null;
- public MapAVAPattern(String component)
- throws ELdapException {
- if (component == null || component.length() == 0)
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", component));
+ public MapAVAPattern(String component) throws ELdapException {
+ if (component == null || component.length() == 0)
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX", component));
parse(new PushbackReader(new StringReader(component)));
}
- public MapAVAPattern(PushbackReader in)
- throws ELdapException {
+ public MapAVAPattern(PushbackReader in) throws ELdapException {
parse(in);
}
- private void parse(PushbackReader in)
- throws ELdapException {
+ private void parse(PushbackReader in) throws ELdapException {
int c;
// mark ava beginning.
// skip spaces
- //System.out.println("============ AVAPattern Begin ===========");
- //System.out.println("skip spaces");
+ // System.out.println("============ AVAPattern Begin ===========");
+ // System.out.println("skip spaces");
try {
- while ((c = in.read()) == ' ' || c == '\t') {//System.out.println("spaces read "+(char)c);
+ while ((c = in.read()) == ' ' || c == '\t') {// System.out.println("spaces read "+(char)c);
;
}
} catch (IOException e) {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", "All blank"));
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX", "All blank"));
}
- if (c == -1)
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", "All blank"));
+ if (c == -1)
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX", "All blank"));
- // $rdn "." number syntax.
+ // $rdn "." number syntax.
if (c == '$') {
- //System.out.println("$rdn syntax");
+ // System.out.println("$rdn syntax");
mType = TYPE_RDN;
try {
- if (in.read() != 'r' ||
- in.read() != 'd' ||
- in.read() != 'n' ||
- in.read() != '.')
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", "Invalid $ syntax, expecting $rdn"));
+ if (in.read() != 'r' || in.read() != 'd' || in.read() != 'n'
+ || in.read() != '.')
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "Invalid $ syntax, expecting $rdn"));
} catch (IOException e) {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", "Invalid $ syntax, expecting $rdn"));
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "Invalid $ syntax, expecting $rdn"));
}
StringBuffer rdnNumberBuf = new StringBuffer();
try {
while ((c = in.read()) != ',' && c != -1 && c != '+') {
- //System.out.println("rdnNumber read "+(char)c);
+ // System.out.println("rdnNumber read "+(char)c);
rdnNumberBuf.append((char) c);
}
if (c != -1) // either ',' or '+'
in.unread(c);
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
String rdnNumber = rdnNumberBuf.toString().trim();
- if (rdnNumber.length() == 0)
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", "$rdn number not set in ava pattern"));
+ if (rdnNumber.length() == 0)
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "$rdn number not set in ava pattern"));
try {
mElement = Integer.parseInt(rdnNumber) - 1;
} catch (NumberFormatException e) {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", "Invalid $rdn number in ava pattern"));
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "Invalid $rdn number in ava pattern"));
}
return;
}
- // name "=" ... syntax.
+ // name "=" ... syntax.
- // read name
- //System.out.println("reading name");
+ // read name
+ // System.out.println("reading name");
- StringBuffer attrBuf = new StringBuffer();
+ StringBuffer attrBuf = new StringBuffer();
try {
while (c != '=' && c != -1 && c != ',' && c != '+') {
attrBuf.append((char) c);
c = in.read();
- //System.out.println("name read "+(char)c);
- }
- if (c == ',' || c == '+')
+ // System.out.println("name read "+(char)c);
+ }
+ if (c == ',' || c == '+')
in.unread(c);
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
if (c != '=')
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", "Missing \"=\" in ava pattern"));
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "Missing \"=\" in ava pattern"));
- // read value
- //System.out.println("reading value");
+ // read value
+ // System.out.println("reading value");
- // skip spaces
- //System.out.println("skip spaces for value");
+ // skip spaces
+ // System.out.println("skip spaces for value");
try {
- while ((c = in.read()) == ' ' || c == '\t') {//System.out.println("spaces2 read "+(char)c);
+ while ((c = in.read()) == ' ' || c == '\t') {// System.out.println("spaces2 read "+(char)c);
;
}
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
- if (c == -1)
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", "no value after = in ava pattern"));
+ if (c == -1)
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "no value after = in ava pattern"));
if (c == '$') {
- // check for $subj $ext or $req
+ // check for $subj $ext or $req
try {
c = in.read();
- //System.out.println("check $dn or $attr read "+(char)c);
+ // System.out.println("check $dn or $attr read "+(char)c);
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
- if (c == -1)
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "expecting $subj or $req in ava pattern"));
+ if (c == -1)
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "expecting $subj or $req in ava pattern"));
if (c == 'r') {
try {
- if (in.read() != 'e' ||
- in.read() != 'q' ||
- in.read() != '.')
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "expecting $req in ava pattern"));
+ if (in.read() != 'e' || in.read() != 'q'
+ || in.read() != '.')
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "expecting $req in ava pattern"));
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
mType = TYPE_REQ;
- //System.out.println("---- mtype $req");
+ // System.out.println("---- mtype $req");
} else if (c == 's') {
try {
- if (in.read() != 'u' ||
- in.read() != 'b' ||
- in.read() != 'j' ||
- in.read() != '.')
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "expecting $subj in ava pattern"));
+ if (in.read() != 'u' || in.read() != 'b'
+ || in.read() != 'j' || in.read() != '.')
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "expecting $subj in ava pattern"));
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
mType = TYPE_SUBJ;
- //System.out.println("----- mtype $subj");
+ // System.out.println("----- mtype $subj");
} else if (c == 'e') {
try {
- if (in.read() != 'x' ||
- in.read() != 't' ||
- in.read() != '.')
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "expecting $ext in ava pattern"));
+ if (in.read() != 'x' || in.read() != 't'
+ || in.read() != '.')
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "expecting $ext in ava pattern"));
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
mType = TYPE_EXT;
- //System.out.println("----- mtype $ext");
+ // System.out.println("----- mtype $ext");
} else {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "unknown keyword. expecting $subj $ext or $req."));
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "unknown keyword. expecting $subj $ext or $req."));
}
- // get request attr name of subject dn pattern from above.
+ // get request attr name of subject dn pattern from above.
String attrName = attrBuf.toString().trim();
- //System.out.println("----- attrName "+attrName);
- if (attrName.length() == 0)
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", "attribute name expected"));
- mAttr = attrName;
+ // System.out.println("----- attrName "+attrName);
+ if (attrName.length() == 0)
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "attribute name expected"));
+ mAttr = attrName;
/*
- try {
- ObjectIdentifier attrOid =
- mLdapDNStrConverter.parseAVAKeyword(attrName);
- mAttr = mLdapDNStrConverter.encodeOID(attrOid);
- //System.out.println("----- mAttr "+mAttr);
- }
- catch (IOException e) {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", e.toString()));
- }
+ * try { ObjectIdentifier attrOid =
+ * mLdapDNStrConverter.parseAVAKeyword(attrName); mAttr =
+ * mLdapDNStrConverter.encodeOID(attrOid);
+ * //System.out.println("----- mAttr "+mAttr); } catch (IOException
+ * e) { throw new ECompSyntaxErr(CMS.getUserMessage(
+ * "CMS_AUTHENTICATION_COMPONENT_SYNTAX", e.toString())); }
*/
// get request attribute or cert subject dn attribute
@@ -345,45 +351,47 @@ class MapAVAPattern {
StringBuffer valueBuf = new StringBuffer();
try {
- while ((c = in.read()) != ',' &&
- c != -1 && c != '.' && c != '+') {
- //System.out.println("mValue read "+(char)c);
+ while ((c = in.read()) != ',' && c != -1 && c != '.'
+ && c != '+') {
+ // System.out.println("mValue read "+(char)c);
valueBuf.append((char) c);
}
if (c == '+' || c == ',') // either ',' or '+'
- in.unread(c); // pushback last , or +
+ in.unread(c); // pushback last , or +
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
mValue = valueBuf.toString().trim();
- if (mValue.length() == 0)
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "$subj or $req attribute name expected"));
- //System.out.println("----- mValue "+mValue);
+ if (mValue.length() == 0)
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "$subj or $req attribute name expected"));
+ // System.out.println("----- mValue "+mValue);
- // get nth dn xxx not nth request attribute .
+ // get nth dn xxx not nth request attribute .
if (c == '.') {
StringBuffer attrNumberBuf = new StringBuffer();
try {
while ((c = in.read()) != ',' && c != -1 && c != '.'
- && c != '+') {
- //System.out.println("mElement read "+(char)c);
+ && c != '+') {
+ // System.out.println("mElement read "+(char)c);
attrNumberBuf.append((char) c);
}
- if (c == ',' || c == '+') // either ',' or '+'
- in.unread(c); // pushback last , or +
+ if (c == ',' || c == '+') // either ',' or '+'
+ in.unread(c); // pushback last , or +
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
String attrNumber = attrNumberBuf.toString().trim();
- if (attrNumber.length() == 0)
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "nth element $req $ext or $subj expected"));
+ if (attrNumber.length() == 0)
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "nth element $req $ext or $subj expected"));
try {
mElement = Integer.parseInt(attrNumber) - 1;
} catch (NumberFormatException e) {
@@ -392,87 +400,93 @@ class MapAVAPattern {
mValue = attrNumber;
} else if (TYPE_EXT.equals(mType)) {
mGNType = attrNumber;
- } else
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "Invalid format in nth element $req $ext or $subj"));
+ } else
+ throw new ECompSyntaxErr(
+ CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "Invalid format in nth element $req $ext or $subj"));
- // get nth request attribute .
+ // get nth request attribute .
if (c == '.') {
StringBuffer attrNumberBuf1 = new StringBuffer();
try {
- while ((c = in.read()) != ',' && c != -1 && c != '+') {
- //System.out.println("mElement read "+(char)c);
+ while ((c = in.read()) != ',' && c != -1
+ && c != '+') {
+ // System.out.println("mElement read "+(char)c);
attrNumberBuf1.append((char) c);
}
if (c != -1) // either ',' or '+'
- in.unread(c); // pushback last , or +
+ in.unread(c); // pushback last , or +
} catch (IOException ex) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", ex.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", ex.toString()));
}
String attrNumber1 = attrNumberBuf1.toString().trim();
- if (attrNumber1.length() == 0)
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "nth element $req expected"));
- try {
- mElement = Integer.parseInt(attrNumber1) - 1;
+ if (attrNumber1.length() == 0)
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "nth element $req expected"));
+ try {
+ mElement = Integer.parseInt(attrNumber1) - 1;
} catch (NumberFormatException ex) {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX",
- "Invalid format in nth element $req."));
-
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX",
+ "Invalid format in nth element $req."));
+
}
}
}
}
- //System.out.println("----- mElement "+mElement);
+ // System.out.println("----- mElement "+mElement);
} else {
// value is constant. treat as regular ava.
mType = TYPE_CONSTANT;
- //System.out.println("----- mType constant");
- // parse ava value.
+ // System.out.println("----- mType constant");
+ // parse ava value.
StringBuffer valueBuf = new StringBuffer();
valueBuf.append((char) c);
// read forward to get attribute value
try {
- while ((c = in.read()) != ',' &&
- c != -1) {
+ while ((c = in.read()) != ',' && c != -1) {
valueBuf.append((char) c);
}
if (c == '+' || c == ',') { // either ',' or '+'
- in.unread(c); // pushback last , or +
+ in.unread(c); // pushback last , or +
}
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
- try {
- AVA ava = mLdapDNStrConverter.parseAVA(attrBuf + "=" + valueBuf);
+ try {
+ AVA ava = mLdapDNStrConverter
+ .parseAVA(attrBuf + "=" + valueBuf);
mValue = ava.toLdapDNString();
- //System.out.println("----- mValue "+mValue);
+ // System.out.println("----- mValue "+mValue);
} catch (IOException e) {
- throw new ECompSyntaxErr(CMS.getUserMessage("CMS_AUTHENTICATION_COMPONENT_SYNTAX", e.toString()));
+ throw new ECompSyntaxErr(CMS.getUserMessage(
+ "CMS_AUTHENTICATION_COMPONENT_SYNTAX", e.toString()));
}
}
}
- public String formAVA(IRequest req, X500Name subject, CertificateExtensions extensions)
- throws ELdapException {
+ public String formAVA(IRequest req, X500Name subject,
+ CertificateExtensions extensions) throws ELdapException {
if (TYPE_CONSTANT.equals(mType))
return mValue;
if (TYPE_RDN.equals(mType)) {
String dn = subject.toString();
- if (mTestDN != null)
+ if (mTestDN != null)
dn = mTestDN;
- //System.out.println("AVAPattern Using dn "+mTestDN);
+ // System.out.println("AVAPattern Using dn "+mTestDN);
String[] rdns = LDAPDN.explodeDN(dn, false);
- if (mElement >= rdns.length)
+ if (mElement >= rdns.length)
return null;
return rdns[mElement];
}
@@ -480,9 +494,9 @@ class MapAVAPattern {
if (TYPE_SUBJ.equals(mType)) {
String dn = subject.toString();
- if (mTestDN != null)
+ if (mTestDN != null)
dn = mTestDN;
- //System.out.println("AVAPattern Using dn "+mTestDN);
+ // System.out.println("AVAPattern Using dn "+mTestDN);
String[] rdns = LDAPDN.explodeDN(dn, false);
String value = null;
int nFound = -1;
@@ -493,19 +507,17 @@ class MapAVAPattern {
for (int j = 0; j < avas.length; j++) {
String[] exploded = explodeAVA(avas[j]);
- if (exploded[0].equalsIgnoreCase(mValue) &&
- ++nFound == mElement) {
+ if (exploded[0].equalsIgnoreCase(mValue)
+ && ++nFound == mElement) {
value = exploded[1];
break;
}
}
}
if (value == null) {
- CMS.debug(
- "MapAVAPattern: attr " + mAttr +
- " not formed from: cert subject " +
- dn +
- "-- no subject component : " + mValue);
+ CMS.debug("MapAVAPattern: attr " + mAttr
+ + " not formed from: cert subject " + dn
+ + "-- no subject component : " + mValue);
return null;
}
return mAttr + "=" + value;
@@ -514,40 +526,41 @@ class MapAVAPattern {
if (TYPE_EXT.equals(mType)) {
if (extensions != null) {
for (int i = 0; i < extensions.size(); i++) {
- Extension ext = (Extension)
- extensions.elementAt(i);
+ Extension ext = (Extension) extensions.elementAt(i);
String extName = OIDMap.getName(ext.getExtensionId());
int index = extName.lastIndexOf(".");
if (index != -1)
extName = extName.substring(index + 1);
- if (
- extName.equals(mValue)) {
+ if (extName.equals(mValue)) {
// Check the extensions one by one.
// For now, just give subjectAltName as an example.
- if
- (mValue.equalsIgnoreCase(SubjectAlternativeNameExtension.NAME)) {
+ if (mValue
+ .equalsIgnoreCase(SubjectAlternativeNameExtension.NAME)) {
try {
- GeneralNames subjectNames = (GeneralNames)
- ((SubjectAlternativeNameExtension) ext).get(SubjectAlternativeNameExtension.SUBJECT_NAME);
+ GeneralNames subjectNames = (GeneralNames) ((SubjectAlternativeNameExtension) ext)
+ .get(SubjectAlternativeNameExtension.SUBJECT_NAME);
if (subjectNames.size() == 0)
break;
int j = 0;
- for (Enumeration n = subjectNames.elements(); n.hasMoreElements();) {
- GeneralName gn = (GeneralName) n.nextElement();
+ for (Enumeration n = subjectNames.elements(); n
+ .hasMoreElements();) {
+ GeneralName gn = (GeneralName) n
+ .nextElement();
String gname = gn.toString();
index = gname.indexOf(":");
- if (index == -1) break;
+ if (index == -1)
+ break;
String gType = gname.substring(0, index);
if (mGNType != null) {
if (mGNType.equalsIgnoreCase(gType)) {
if (mElement == j) {
- gname =
- gname.substring(index + 2);
+ gname = gname
+ .substring(index + 2);
return mAttr + "=" + gname;
} else {
j++;
@@ -555,25 +568,22 @@ class MapAVAPattern {
}
} else {
if (mElement == j) {
- gname =
- gname.substring(index + 2);
+ gname = gname.substring(index + 2);
return mAttr + "=" + gname;
}
j++;
}
}
- } catch (IOException e) {
- CMS.debug(
- "MapAVAPattern: Publishing attr not formed from extension." +
- "-- no attr : " + mValue);
+ } catch (IOException e) {
+ CMS.debug("MapAVAPattern: Publishing attr not formed from extension."
+ + "-- no attr : " + mValue);
}
}
}
}
}
- CMS.debug(
- "MapAVAPattern: Publishing:attr not formed from extension " +
- "-- no attr : " + mValue);
+ CMS.debug("MapAVAPattern: Publishing:attr not formed from extension "
+ + "-- no attr : " + mValue);
return null;
}
@@ -582,9 +592,8 @@ class MapAVAPattern {
// mPrefix and mValue are looked up case-insensitive
String reqAttr = req.getExtDataInString(mPrefix, mValue);
if (reqAttr == null) {
- throw new
- ELdapException(CMS.getUserMessage("CMS_LDAP_NO_REQUEST",
- mValue, mAttr));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_NO_REQUEST", mValue, mAttr));
}
return mAttr + "=" + reqAttr;
}
@@ -607,20 +616,19 @@ class MapAVAPattern {
}
/**
- * Explode RDN into AVAs.
- * Does not handle escaped '+'
- * Java ldap library does not yet support multiple avas per rdn.
- * If RDN is malformed returns empty array.
+ * Explode RDN into AVAs. Does not handle escaped '+' Java ldap library does
+ * not yet support multiple avas per rdn. If RDN is malformed returns empty
+ * array.
*/
public static String[] explodeRDN(String rdn) {
int plus = rdn.indexOf('+');
- if (plus == -1)
+ if (plus == -1)
return new String[] { rdn };
Vector avas = new Vector();
StringTokenizer token = new StringTokenizer(rdn, "+");
- while (token.hasMoreTokens())
+ while (token.hasMoreTokens())
avas.addElement(token.nextToken());
String[] theAvas = new String[avas.size()];
@@ -629,17 +637,15 @@ class MapAVAPattern {
}
/**
- * Explode AVA into name and value.
- * Does not handle escaped '='
- * If AVA is malformed empty array is returned.
+ * Explode AVA into name and value. Does not handle escaped '=' If AVA is
+ * malformed empty array is returned.
*/
public static String[] explodeAVA(String ava) {
int equals = ava.indexOf('=');
- if (equals == -1)
+ if (equals == -1)
return null;
- return new String[] {
- ava.substring(0, equals).trim(), ava.substring(equals + 1).trim()};
+ return new String[] { ava.substring(0, equals).trim(),
+ ava.substring(equals + 1).trim() };
}
}
-
diff --git a/pki/base/common/src/com/netscape/cms/publish/mappers/MapDNPattern.java b/pki/base/common/src/com/netscape/cms/publish/mappers/MapDNPattern.java
index 547e370ad..090547bcc 100644
--- a/pki/base/common/src/com/netscape/cms/publish/mappers/MapDNPattern.java
+++ b/pki/base/common/src/com/netscape/cms/publish/mappers/MapDNPattern.java
@@ -17,7 +17,6 @@
// --- END COPYRIGHT BLOCK ---
package com.netscape.cms.publish.mappers;
-
import java.io.IOException;
import java.io.PushbackReader;
import java.io.StringReader;
@@ -31,25 +30,27 @@ import com.netscape.certsrv.base.EBaseException;
import com.netscape.certsrv.ldap.ELdapException;
import com.netscape.certsrv.request.IRequest;
-
/**
- * class for parsing a DN pattern used to construct a ldap dn from
- * request attributes and cert subject name.<p>
+ * class for parsing a DN pattern used to construct a ldap dn from request
+ * attributes and cert subject name.
+ * <p>
*
- * dnpattern is a string representing a ldap dn pattern to formulate from
- * the certificate subject name attributes and request attributes .
- * If empty or not set, the certificate subject name
- * will be used as the ldap dn. <p>
+ * dnpattern is a string representing a ldap dn pattern to formulate from the
+ * certificate subject name attributes and request attributes . If empty or not
+ * set, the certificate subject name will be used as the ldap dn.
+ * <p>
+ *
+ * The syntax is
*
- * The syntax is
* <pre>
- * dnPattern := rdnPattern *[ "," rdnPattern ]
- * rdnPattern := avaPattern *[ "+" avaPattern ]
+ * dnPattern := rdnPattern *[ "," rdnPattern ]
+ * rdnPattern := avaPattern *[ "+" avaPattern ]
* avaPattern := name "=" value |
- * name "=" "$subj" "." attrName [ "." attrNumber ] |
- * name "=" "$req" "." attrName [ "." attrNumber ] |
- * "$rdn" "." number
+ * name "=" "$subj" "." attrName [ "." attrNumber ] |
+ * name "=" "$req" "." attrName [ "." attrNumber ] |
+ * "$rdn" "." number
* </pre>
+ *
* <pre>
* Example1: <i>cn=Certificate Manager,ou=people,o=mcom.com</i>
* cert subject name: dn: CN=Certificate Manager, OU=people, O=mcom.com
@@ -60,7 +61,7 @@ import com.netscape.certsrv.request.IRequest;
* <p>
* note: Subordinate ca enrollment will use ca mapper. Use predicate
* to distinguish the ca itself and the subordinates.
- *
+ *
* Example2: <i>UID=$req.HTTP_PARAMS.uid, OU=$subj.ou, O=people, , O=mcom.com</i>
* cert subject name: dn: UID=jjames, OU=IS, O=people, , O=mcom.com
* request attributes: uid: cmanager
@@ -73,18 +74,18 @@ import com.netscape.certsrv.request.IRequest;
* O = the string people, mcom.com. <br>
* <p>
* </pre>
- * If an request attribute or subject DN component does not exist,
- * the attribute is skipped. There is potential risk that a wrong dn
- * will be mapped into.
- *
+ *
+ * If an request attribute or subject DN component does not exist, the attribute
+ * is skipped. There is potential risk that a wrong dn will be mapped into.
+ *
* @version $Revision$, $Date$
*/
public class MapDNPattern {
- /* the list of request attriubutes to retrieve*/
+ /* the list of request attriubutes to retrieve */
protected String[] mReqAttrs = null;
- /* the list of cert attriubutes to retrieve*/
+ /* the list of cert attriubutes to retrieve */
protected String[] mCertAttrs = null;
/* rdn patterns */
@@ -95,16 +96,15 @@ public class MapDNPattern {
protected String mTestDN = null;
- /**
+ /**
* Construct a DN pattern by parsing a pattern string.
+ *
* @param pattern the DN pattern
- * @exception EBaseException If parsing error occurs.
+ * @exception EBaseException If parsing error occurs.
*/
- public MapDNPattern(String pattern)
- throws ELdapException {
+ public MapDNPattern(String pattern) throws ELdapException {
if (pattern == null || pattern.equals("")) {
- CMS.debug(
- "MapDNPattern: null pattern");
+ CMS.debug("MapDNPattern: null pattern");
} else {
mPatternString = pattern;
PushbackReader in = new PushbackReader(new StringReader(pattern));
@@ -113,13 +113,11 @@ public class MapDNPattern {
}
}
- public MapDNPattern(PushbackReader in)
- throws ELdapException {
+ public MapDNPattern(PushbackReader in) throws ELdapException {
parse(in);
}
- private void parse(PushbackReader in)
- throws ELdapException {
+ private void parse(PushbackReader in) throws ELdapException {
Vector rdnPatterns = new Vector();
MapRDNPattern rdnPattern = null;
int lastChar = -1;
@@ -130,11 +128,10 @@ public class MapDNPattern {
try {
lastChar = in.read();
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
- }
- while (lastChar == ',');
+ } while (lastChar == ',');
mRDNPatterns = new MapRDNPattern[rdnPatterns.size()];
rdnPatterns.copyInto(mRDNPatterns);
@@ -144,8 +141,8 @@ public class MapDNPattern {
for (int i = 0; i < mRDNPatterns.length; i++) {
String[] rdnAttrs = mRDNPatterns[i].getReqAttrs();
- if (rdnAttrs != null && rdnAttrs.length > 0)
- for (int j = 0; j < rdnAttrs.length; j++)
+ if (rdnAttrs != null && rdnAttrs.length > 0)
+ for (int j = 0; j < rdnAttrs.length; j++)
reqAttrs.addElement(rdnAttrs[j]);
}
mReqAttrs = new String[reqAttrs.size()];
@@ -156,8 +153,8 @@ public class MapDNPattern {
for (int i = 0; i < mRDNPatterns.length; i++) {
String[] rdnAttrs = mRDNPatterns[i].getCertAttrs();
- if (rdnAttrs != null && rdnAttrs.length > 0)
- for (int j = 0; j < rdnAttrs.length; j++)
+ if (rdnAttrs != null && rdnAttrs.length > 0)
+ for (int j = 0; j < rdnAttrs.length; j++)
certAttrs.addElement(rdnAttrs[j]);
}
mCertAttrs = new String[certAttrs.size()];
@@ -166,12 +163,13 @@ public class MapDNPattern {
/**
* Form a Ldap v3 DN string from a request and a cert subject name.
+ *
* @param req the request for (un)publish
* @param subject the subjectDN of the certificate
- * @return Ldap v3 DN string to use for base ldap search.
+ * @return Ldap v3 DN string to use for base ldap search.
*/
- public String formDN(IRequest req, X500Name subject, CertificateExtensions ext)
- throws ELdapException {
+ public String formDN(IRequest req, X500Name subject,
+ CertificateExtensions ext) throws ELdapException {
StringBuffer formedDN = new StringBuffer();
for (int i = 0; i < mRDNPatterns.length; i++) {
@@ -180,11 +178,11 @@ public class MapDNPattern {
String rdn = mRDNPatterns[i].formRDN(req, subject, ext);
if (rdn != null && rdn.length() != 0) {
- if (formedDN.length() != 0)
- formedDN.append(",");
- formedDN.append(rdn);
+ if (formedDN.length() != 0)
+ formedDN.append(",");
+ formedDN.append(rdn);
} else {
- throw new ELdapException("pattern not matched");
+ throw new ELdapException("pattern not matched");
}
}
return formedDN.toString();
@@ -198,4 +196,3 @@ public class MapDNPattern {
return (String[]) mCertAttrs.clone();
}
}
-
diff --git a/pki/base/common/src/com/netscape/cms/publish/mappers/MapRDNPattern.java b/pki/base/common/src/com/netscape/cms/publish/mappers/MapRDNPattern.java
index 3720d02dd..87ca5d2d0 100644
--- a/pki/base/common/src/com/netscape/cms/publish/mappers/MapRDNPattern.java
+++ b/pki/base/common/src/com/netscape/cms/publish/mappers/MapRDNPattern.java
@@ -17,7 +17,6 @@
// --- END COPYRIGHT BLOCK ---
package com.netscape.cms.publish.mappers;
-
import java.io.IOException;
import java.io.PushbackReader;
import java.io.StringReader;
@@ -30,25 +29,27 @@ import com.netscape.certsrv.apps.CMS;
import com.netscape.certsrv.ldap.ELdapException;
import com.netscape.certsrv.request.IRequest;
-
/**
- * class for parsing a DN pattern used to construct a ldap dn from
- * request attributes and cert subject name.<p>
+ * class for parsing a DN pattern used to construct a ldap dn from request
+ * attributes and cert subject name.
+ * <p>
*
- * dnpattern is a string representing a ldap dn pattern to formulate from
- * the certificate subject name attributes and request attributes .
- * If empty or not set, the certificate subject name
- * will be used as the ldap dn. <p>
+ * dnpattern is a string representing a ldap dn pattern to formulate from the
+ * certificate subject name attributes and request attributes . If empty or not
+ * set, the certificate subject name will be used as the ldap dn.
+ * <p>
+ *
+ * The syntax is
*
- * The syntax is
* <pre>
- * dnPattern := rdnPattern *[ "," rdnPattern ]
- * rdnPattern := avaPattern *[ "+" avaPattern ]
+ * dnPattern := rdnPattern *[ "," rdnPattern ]
+ * rdnPattern := avaPattern *[ "+" avaPattern ]
* avaPattern := name "=" value |
- * name "=" "$subj" "." attrName [ "." attrNumber ] |
- * name "=" "$req" "." attrName [ "." attrNumber ] |
- * "$rdn" "." number
+ * name "=" "$subj" "." attrName [ "." attrNumber ] |
+ * name "=" "$req" "." attrName [ "." attrNumber ] |
+ * "$rdn" "." number
* </pre>
+ *
* <pre>
* Example1: <i>cn=Certificate Manager,ou=people,o=mcom.com</i>
* cert subject name: dn: CN=Certificate Manager, OU=people, O=mcom.com
@@ -59,7 +60,7 @@ import com.netscape.certsrv.request.IRequest;
* <p>
* note: Subordinate ca enrollment will use ca mapper. Use predicate
* to distinguish the ca itself and the subordinates.
- *
+ *
* Example2: <i>UID=$req.HTTP_PARAMS.uid, OU=$subj.ou, O=people, , O=mcom.com</i>
* cert subject name: dn: UID=jjames, OU=IS, O=people, , O=mcom.com
* request attributes: uid: cmanager
@@ -72,18 +73,18 @@ import com.netscape.certsrv.request.IRequest;
* O = the string people, mcom.com. <br>
* <p>
* </pre>
- * If an request attribute or subject DN component does not exist,
- * the attribute is skipped.There is potential risk that a wrong dn
- * will be mapped into.
- *
+ *
+ * If an request attribute or subject DN component does not exist, the attribute
+ * is skipped.There is potential risk that a wrong dn will be mapped into.
+ *
* @version $Revision$, $Date$
*/
class MapRDNPattern {
- /* the list of request attributes needed by this RDN */
+ /* the list of request attributes needed by this RDN */
protected String[] mReqAttrs = null;
- /* the list of cert attributes needed by this RDN */
+ /* the list of cert attributes needed by this RDN */
protected String[] mCertAttrs = null;
/* AVA patterns */
@@ -94,16 +95,15 @@ class MapRDNPattern {
protected String mTestDN = null;
- /**
+ /**
* Construct a DN pattern by parsing a pattern string.
+ *
* @param pattenr the DN pattern
- * @exception ELdapException If parsing error occurs.
+ * @exception ELdapException If parsing error occurs.
*/
- public MapRDNPattern(String pattern)
- throws ELdapException {
+ public MapRDNPattern(String pattern) throws ELdapException {
if (pattern == null || pattern.equals("")) {
- CMS.debug(
- "MapDNPattern: null pattern");
+ CMS.debug("MapDNPattern: null pattern");
} else {
mPatternString = pattern;
PushbackReader in = new PushbackReader(new StringReader(pattern));
@@ -113,16 +113,14 @@ class MapRDNPattern {
}
/**
- * Construct a DN pattern from a input stream of pattern
+ * Construct a DN pattern from a input stream of pattern
*/
- public MapRDNPattern(PushbackReader in)
- throws ELdapException {
+ public MapRDNPattern(PushbackReader in) throws ELdapException {
parse(in);
}
- private void parse(PushbackReader in)
- throws ELdapException {
- //System.out.println("_________ begin rdn _________");
+ private void parse(PushbackReader in) throws ELdapException {
+ // System.out.println("_________ begin rdn _________");
Vector avaPatterns = new Vector();
MapAVAPattern avaPattern = null;
int lastChar;
@@ -130,26 +128,25 @@ class MapRDNPattern {
do {
avaPattern = new MapAVAPattern(in);
avaPatterns.addElement(avaPattern);
- //System.out.println("added AVAPattern"+
- //" mType "+avaPattern.mType+
- //" mAttr "+avaPattern.mAttr+
- //" mValue "+avaPattern.mValue+
- //" mElement "+avaPattern.mElement);
- try {
- lastChar = in.read();
+ // System.out.println("added AVAPattern"+
+ // " mType "+avaPattern.mType+
+ // " mAttr "+avaPattern.mAttr+
+ // " mValue "+avaPattern.mValue+
+ // " mElement "+avaPattern.mElement);
+ try {
+ lastChar = in.read();
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
- }
- while (lastChar == '+');
+ } while (lastChar == '+');
if (lastChar != -1) {
try {
- in.unread(lastChar); // pushback last ,
+ in.unread(lastChar); // pushback last ,
} catch (IOException e) {
- throw new ELdapException(
- CMS.getUserMessage("CMS_LDAP_INTERNAL_ERROR", e.toString()));
+ throw new ELdapException(CMS.getUserMessage(
+ "CMS_LDAP_INTERNAL_ERROR", e.toString()));
}
}
@@ -161,7 +158,7 @@ class MapRDNPattern {
for (int i = 0; i < mAVAPatterns.length; i++) {
String avaAttr = mAVAPatterns[i].getReqAttr();
- if (avaAttr == null || avaAttr.length() == 0)
+ if (avaAttr == null || avaAttr.length() == 0)
continue;
reqAttrs.addElement(avaAttr);
}
@@ -173,7 +170,7 @@ class MapRDNPattern {
for (int i = 0; i < mAVAPatterns.length; i++) {
String avaAttr = mAVAPatterns[i].getCertAttr();
- if (avaAttr == null || avaAttr.length() == 0)
+ if (avaAttr == null || avaAttr.length() == 0)
continue;
certAttrs.addElement(avaAttr);
}
@@ -183,16 +180,17 @@ class MapRDNPattern {
/**
* Form a Ldap v3 DN string from a request and a cert subject name.
+ *
* @param req the request for (un)publish
* @param subject the subjectDN of the certificate
- * @return Ldap v3 DN string to use for base ldap search.
+ * @return Ldap v3 DN string to use for base ldap search.
*/
- public String formRDN(IRequest req, X500Name subject, CertificateExtensions ext)
- throws ELdapException {
+ public String formRDN(IRequest req, X500Name subject,
+ CertificateExtensions ext) throws ELdapException {
StringBuffer formedRDN = new StringBuffer();
for (int i = 0; i < mAVAPatterns.length; i++) {
- if (mTestDN != null)
+ if (mTestDN != null)
mAVAPatterns[i].mTestDN = mTestDN;
String ava = mAVAPatterns[i].formAVA(req, subject, ext);
@@ -202,7 +200,7 @@ class MapRDNPattern {
formedRDN.append(ava);
}
}
- //System.out.println("formed RDN "+formedRDN.toString());
+ // System.out.println("formed RDN "+formedRDN.toString());
return formedRDN.toString();
}
diff --git a/pki/base/common/src/com/netscape/cms/publish/mappers/NoMap.java b/pki/base/common/src/com/netscape/cms/publish/mappers/NoMap.java
index b1d109020..4b15a5abd 100644
--- a/pki/base/common/src/com/netscape/cms/publish/mappers/NoMap.java
+++ b/pki/base/common/src/com/netscape/cms/publish/mappers/NoMap.java
@@ -17,7 +17,6 @@
// --- END COPYRIGHT BLOCK ---
package com.netscape.cms.publish.mappers;
-
import java.util.Locale;
import java.util.Vector;
@@ -30,10 +29,9 @@ import com.netscape.certsrv.ldap.ELdapException;
import com.netscape.certsrv.publish.ILdapMapper;
import com.netscape.certsrv.request.IRequest;
-
-/**
+/**
* No Map
- *
+ *
* @version $Revision$, $Date$
*/
public class NoMap implements ILdapMapper, IExtendedPluginInfo {
@@ -48,40 +46,39 @@ public class NoMap implements ILdapMapper, IExtendedPluginInfo {
public String[] getExtendedPluginInfo(Locale locale) {
String params[] = {
- IExtendedPluginInfo.HELP_TOKEN + ";configuration-ldappublish-mapper-simplemapper",
- IExtendedPluginInfo.HELP_TEXT + ";Describes how to form the name of the entry to publish to"
- };
+ IExtendedPluginInfo.HELP_TOKEN
+ + ";configuration-ldappublish-mapper-simplemapper",
+ IExtendedPluginInfo.HELP_TEXT
+ + ";Describes how to form the name of the entry to publish to" };
return params;
}
public IConfigStore getConfigStore() {
- return mConfig;
+ return mConfig;
}
- /**
+ /**
* for initializing from config store.
*/
- public void init(IConfigStore config)
- throws EBaseException {
+ public void init(IConfigStore config) throws EBaseException {
mConfig = config;
}
/**
- * Maps a X500 subject name to LDAP entry.
- * Uses DN pattern to form a DN for a LDAP base search.
+ * Maps a X500 subject name to LDAP entry. Uses DN pattern to form a DN for
+ * a LDAP base search.
*
- * @param conn the LDAP connection.
- * @param obj the object to map.
+ * @param conn the LDAP connection.
+ * @param obj the object to map.
* @exception ELdapException if any LDAP exceptions occured.
- */
- public String map(LDAPConnection conn, Object obj)
- throws ELdapException {
+ */
+ public String map(LDAPConnection conn, Object obj) throws ELdapException {
return null;
}
public String map(LDAPConnection conn, IRequest req, Object obj)
- throws ELdapException {
+ throws ELdapException {
return null;
}