summaryrefslogtreecommitdiffstats
path: root/pki/base/common/src/com/netscape/cms/authentication/RDNPattern.java
diff options
context:
space:
mode:
authorEndi Sukma Dewata <edewata@redhat.com>2012-03-24 02:27:47 -0500
committerEndi Sukma Dewata <edewata@redhat.com>2012-03-26 11:43:54 -0500
commit621d9e5c413e561293d7484b93882d985b3fe15f (patch)
tree638f3d75761c121d9a8fb50b52a12a6686c5ac5c /pki/base/common/src/com/netscape/cms/authentication/RDNPattern.java
parent40d3643b8d91886bf210aa27f711731c81a11e49 (diff)
downloadpki-621d9e5c413e561293d7484b93882d985b3fe15f.tar.gz
pki-621d9e5c413e561293d7484b93882d985b3fe15f.tar.xz
pki-621d9e5c413e561293d7484b93882d985b3fe15f.zip
Removed unnecessary pki folder.
Previously the source code was located inside a pki folder. This folder was created during svn migration and is no longer needed. This folder has now been removed and the contents have been moved up one level. Ticket #131
Diffstat (limited to 'pki/base/common/src/com/netscape/cms/authentication/RDNPattern.java')
-rw-r--r--pki/base/common/src/com/netscape/cms/authentication/RDNPattern.java232
1 files changed, 0 insertions, 232 deletions
diff --git a/pki/base/common/src/com/netscape/cms/authentication/RDNPattern.java b/pki/base/common/src/com/netscape/cms/authentication/RDNPattern.java
deleted file mode 100644
index 722aefbc3..000000000
--- a/pki/base/common/src/com/netscape/cms/authentication/RDNPattern.java
+++ /dev/null
@@ -1,232 +0,0 @@
-// --- BEGIN COPYRIGHT BLOCK ---
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; version 2 of the License.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program; if not, write to the Free Software Foundation, Inc.,
-// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-//
-// (C) 2007 Red Hat, Inc.
-// All rights reserved.
-// --- END COPYRIGHT BLOCK ---
-package com.netscape.cms.authentication;
-
-import java.io.IOException;
-import java.io.PushbackReader;
-import java.io.StringReader;
-import java.util.Vector;
-
-import netscape.ldap.LDAPEntry;
-
-import com.netscape.certsrv.apps.CMS;
-import com.netscape.certsrv.authentication.EAuthException;
-import com.netscape.certsrv.base.EBaseException;
-
-/**
- * class for parsing a DN pattern used to construct a certificate
- * subject name from ldap attributes and dn.
- * <p>
- *
- * dnpattern is a string representing a subject name pattern to formulate from the directory attributes and entry dn. If
- * empty or not set, the ldap entry DN will be used as the certificate subject name.
- * <p>
- *
- * The syntax is
- *
- * <pre>
- * dnPattern := rdnPattern *[ "," rdnPattern ]
- * rdnPattern := avaPattern *[ "+" avaPattern ]
- * avaPattern := name "=" value |
- * name "=" "$attr" "." attrName [ "." attrNumber ] |
- * name "=" "$dn" "." attrName [ "." attrNumber ] |
- * "$dn" "." "$rdn" "." number
- * </pre>
- *
- * <pre>
- * Example1: <i>E=$attr.mail.1, CN=$attr.cn, OU=$dn.ou.2, O=$dn.o, C=US </i>
- * Ldap entry: dn: UID=jjames, OU=IS, OU=people, O=acme.org
- * Ldap attributes: cn: Jesse James
- * Ldap attributes: mail: jjames@acme.org
- * <p>
- * The subject name formulated will be : <br>
- * E=jjames@acme.org, CN=Jesse James, OU=people, O=acme.org, C=US
- * <p>
- * E = the first 'mail' ldap attribute value in user's entry. <br>
- * CN = the (first) 'cn' ldap attribute value in the user's entry. <br>
- * OU = the second 'ou' value in the user's entry DN. <br>
- * O = the (first) 'o' value in the user's entry DN. <br>
- * C = the string "US"
- * <p>
- * Example2: <i>E=$attr.mail.1, CN=$attr.cn, OU=$dn.ou.2, O=$dn.o, C=US</i>
- * Ldap entry: dn: UID=jjames, OU=IS+OU=people, O=acme.org
- * Ldap attributes: cn: Jesse James
- * Ldap attributes: mail: jjames@acme.org
- * <p>
- * The subject name formulated will be : <br>
- * E=jjames@acme.org, CN=Jesse James, OU=people, O=acme.org, C=US
- * <p>
- * E = the first 'mail' ldap attribute value in user's entry. <br>
- * CN = the (first) 'cn' ldap attribute value in the user's entry. <br>
- * OU = the second 'ou' value in the user's entry DN. note multiple AVAs
- * in a RDN in this example. <br>
- * O = the (first) 'o' value in the user's entry DN. <br>
- * C = the string "US"
- * <p>
- * </pre>
- *
- * <pre>
- * Example3: <i>CN=$attr.cn, $rdn.2, O=$dn.o, C=US</i>
- * Ldap entry: dn: UID=jjames, OU=IS+OU=people, O=acme.org
- * Ldap attributes: cn: Jesse James
- * Ldap attributes: mail: jjames@acme.org
- * <p>
- * The subject name formulated will be : <br>
- * CN=Jesse James, OU=IS+OU=people, O=acme.org, C=US
- * <p>
- * CN = the (first) 'cn' ldap attribute value in the user's entry. <br>
- * followed by the second RDN in the user's entry DN. <br>
- * O = the (first) 'o' value in the user's entry DN. <br>
- * C = the string "US"
- * <p>
- * Example4: <i>CN=$attr.cn, OU=$dn.ou.2+OU=$dn.ou.1, O=$dn.o, C=US</i>
- * Ldap entry: dn: UID=jjames, OU=IS+OU=people, O=acme.org
- * Ldap attributes: cn: Jesse James
- * Ldap attributes: mail: jjames@acme.org
- * <p>
- * The subject name formulated will be : <br>
- * CN=Jesse James, OU=people+OU=IS, O=acme.org, C=US
- * <p>
- * CN = the (first) 'cn' ldap attribute value in the user's entry. <br>
- * OU = the second 'ou' value in the user's entry DN followed by the
- * first 'ou' value in the user's entry. note multiple AVAs
- * in a RDN in this example. <br>
- * O = the (first) 'o' value in the user's entry DN. <br>
- * C = the string "US"
- * <p>
- * </pre>
- *
- * If an attribute or subject DN component does not exist the attribute is skipped.
- *
- * @version $Revision$, $Date$
- */
-class RDNPattern {
-
- /* ldap attributes needed by this RDN (to retrieve from ldap) */
- private String[] mLdapAttrs = null;
-
- /* AVA patterns */
- protected AVAPattern[] mAVAPatterns = null;
-
- /* original pattern string */
- protected String mPatternString = null;
-
- protected String mTestDN = null;
-
- /**
- * Construct a DN pattern by parsing a pattern string.
- *
- * @param pattenr the DN pattern
- * @exception EBaseException If parsing error occurs.
- */
- public RDNPattern(String pattern)
- throws EAuthException {
- if (pattern == null || pattern.equals("")) {
- // create an attribute list that is the dn.
- mLdapAttrs = new String[] { "dn" };
- } else {
- mPatternString = pattern;
- PushbackReader in = new PushbackReader(new StringReader(pattern));
-
- parse(in);
- }
- }
-
- /**
- * Construct a DN pattern from a input stream of pattern
- */
- public RDNPattern(PushbackReader in)
- throws EAuthException {
- parse(in);
- }
-
- private void parse(PushbackReader in)
- throws EAuthException {
- //System.out.println("_________ begin rdn _________");
- Vector<AVAPattern> avaPatterns = new Vector<AVAPattern>();
- AVAPattern avaPattern = null;
- int lastChar;
-
- do {
- avaPattern = new AVAPattern(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();
- } catch (IOException e) {
- throw new EAuthException(CMS.getUserMessage("CMS_AUTHENTICATION_INTERNAL_ERROR", e.toString()));
- }
- } while (lastChar == '+');
-
- if (lastChar != -1) {
- try {
- in.unread(lastChar); // pushback last ,
- } catch (IOException e) {
- throw new EAuthException(CMS.getUserMessage("CMS_AUTHENTICATION_INTERNAL_ERROR", e.toString()));
- }
- }
-
- mAVAPatterns = new AVAPattern[avaPatterns.size()];
- avaPatterns.copyInto(mAVAPatterns);
-
- Vector<String> ldapAttrs = new Vector<String>();
-
- for (int i = 0; i < mAVAPatterns.length; i++) {
- String avaAttr = mAVAPatterns[i].getLdapAttr();
-
- if (avaAttr == null || avaAttr.length() == 0)
- continue;
- ldapAttrs.addElement(avaAttr);
- }
- mLdapAttrs = new String[ldapAttrs.size()];
- ldapAttrs.copyInto(mLdapAttrs);
- }
-
- /**
- * Form a Ldap v3 DN string from results of a ldap search.
- *
- * @param entry LDAPentry from a ldap search
- * @return Ldap v3 DN string to use for a subject name.
- */
- public String formRDN(LDAPEntry entry)
- throws EAuthException {
- StringBuffer formedRDN = new StringBuffer();
-
- for (int i = 0; i < mAVAPatterns.length; i++) {
- if (mTestDN != null)
- mAVAPatterns[i].mTestDN = mTestDN;
- String ava = mAVAPatterns[i].formAVA(entry);
-
- if (ava != null && ava.length() > 0) {
- if (formedRDN.length() != 0)
- formedRDN.append("+");
- formedRDN.append(ava);
- }
- }
- //System.out.println("formed RDN "+formedRDN.toString());
- return formedRDN.toString();
- }
-
- public String[] getLdapAttrs() {
- return (String[]) mLdapAttrs.clone();
- }
-}