Class DNPattern

java.lang.Object
com.netscape.cms.authentication.DNPattern

public class DNPattern extends Object
class for parsing a DN pattern used to construct a certificate subject name from ldap attributes and dn.

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.

The syntax is

        dnPattern := rdnPattern *[ "," rdnPattern ]
        rdnPattern := avaPattern *[ "+" avaPattern ]
                avaPattern := name "=" value |
                              name "=" "$attr" "." attrName [ "." attrNumber ] |
                              name "=" "$dn" "." attrName [ "." attrNumber ] |
                                  "$dn" "." "$rdn" "." number
 
 Example1: E=$attr.mail.1, CN=$attr.cn, OU=$dn.ou.2, O=$dn.o, C=US 
 Ldap entry: dn:  UID=jjames, OU=IS, OU=people, O=acme.org
 Ldap attributes: cn: Jesse James
 Ldap attributes: mail: jjames@acme.org
 

The subject name formulated will be :
E=jjames@acme.org, CN=Jesse James, OU=people, O=acme.org, C=US

E = the first 'mail' ldap attribute value in user's entry.
CN = the (first) 'cn' ldap attribute value in the user's entry.
OU = the second 'ou' value in the user's entry DN.
O = the (first) 'o' value in the user's entry DN.
C = the string "US"

Example2: E=$attr.mail.1, CN=$attr.cn, OU=$dn.ou.2, O=$dn.o, C=US Ldap entry: dn: UID=jjames, OU=IS+OU=people, O=acme.org Ldap attributes: cn: Jesse James Ldap attributes: mail: jjames@acme.org

The subject name formulated will be :
E=jjames@acme.org, CN=Jesse James, OU=people, O=acme.org, C=US

E = the first 'mail' ldap attribute value in user's entry.
CN = the (first) 'cn' ldap attribute value in the user's entry.
OU = the second 'ou' value in the user's entry DN. note multiple AVAs in a RDN in this example.
O = the (first) 'o' value in the user's entry DN.
C = the string "US"

 Example3: CN=$attr.cn, $rdn.2, O=$dn.o, C=US
 Ldap entry: dn:  UID=jjames, OU=IS+OU=people, O=acme.org
 Ldap attributes: cn: Jesse James
 Ldap attributes: mail: jjames@acme.org
 

The subject name formulated will be :
CN=Jesse James, OU=IS+OU=people, O=acme.org, C=US

CN = the (first) 'cn' ldap attribute value in the user's entry.
followed by the second RDN in the user's entry DN.
O = the (first) 'o' value in the user's entry DN.
C = the string "US"

Example4: CN=$attr.cn, OU=$dn.ou.2+OU=$dn.ou.1, O=$dn.o, C=US Ldap entry: dn: UID=jjames, OU=IS+OU=people, O=acme.org Ldap attributes: cn: Jesse James Ldap attributes: mail: jjames@acme.org

The subject name formulated will be :
CN=Jesse James, OU=people+OU=IS, O=acme.org, C=US

CN = the (first) 'cn' ldap attribute value in the user's entry.
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.
O = the (first) 'o' value in the user's entry DN.
C = the string "US"

If an attribute or subject DN component does not exist the attribute is skipped.
Version:
$Revision$, $Date$