import java.io.*;
import java.security.Security;
import com.novell.ldap.*;

public class Cippie extends ConnectionMaker {

	String ServerDNSName = "someserver.somecompany.com"; //PRIV
	String CACertPath = "/etc/certs/somecompany.keystore"; //PRIV
		/*default: /usr/lib/j2sdk1.4.1/jre/lib/security/cacerts */
	String NDSLoginContext = "";
	String Admin="cn=admin,ou=somedept,o=somecomp"; //PRIV
	String AdminPassword = "secret"; //PRIV
	String CourseContext = "ou=2003ss, ou=Wahlpflichtkurse, o=somecompany";
	String StudentContext = "ou=studenten, o=somecompany";
	int ssl = 0;
	
	public StringBuffer errString = new StringBuffer("");

	public LDAPConnection getConnection () {
		try {
			LDAPConnection c;
			if (ssl == 0) {
				c = new LDAPConnection ();
				c.connect (ServerDNSName, 389);
			} else {
				LDAPSocketFactory ssf;
				Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
				System.setProperty("javax.net.ssl.trustStore",CACertPath);
				ssf = new LDAPJSSESecureSocketFactory();
				LDAPConnection.setSocketFactory(ssf);
				c = new LDAPConnection ();
				c.connect (ServerDNSName, 636);		
				c.bind (Admin, AdminPassword);
			}	
			return c;
		} catch (Exception e) {
			System.out.println ("ConnMakerException");
			e.printStackTrace();
			errString.append (e);
			return (LDAPConnection)null;
		}
	}
	
  public String getStudentContext () {
	   return StudentContext;
  }

  public String getCourseContext (String term) {
    return "ou=" + term + ", " + CourseContext;
  }

}
