home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / ldapjdk.jar / netscape / ldap / LDAPSSLSocketFactory.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-13  |  3.1 KB  |  106 lines

  1. package netscape.ldap;
  2.  
  3. import java.lang.reflect.Constructor;
  4. import java.lang.reflect.Method;
  5. import java.net.Socket;
  6.  
  7. public class LDAPSSLSocketFactory implements LDAPSSLSocketFactoryExt {
  8.    private boolean m_clientAuth = false;
  9.    private String m_packageName = "netscape.net.SSLSocket";
  10.    private Object m_cipherSuites;
  11.    private LDAPConnection m_connection;
  12.  
  13.    public LDAPSSLSocketFactory() {
  14.    }
  15.  
  16.    public LDAPSSLSocketFactory(boolean var1) {
  17.       this.m_clientAuth = var1;
  18.    }
  19.  
  20.    public LDAPSSLSocketFactory(String var1) {
  21.       this.m_packageName = new String(var1);
  22.    }
  23.  
  24.    public LDAPSSLSocketFactory(String var1, boolean var2) {
  25.       this.m_packageName = new String(var1);
  26.       this.m_clientAuth = var2;
  27.    }
  28.  
  29.    public LDAPSSLSocketFactory(String var1, Object var2) {
  30.       this.m_packageName = new String(var1);
  31.       this.m_cipherSuites = var2;
  32.    }
  33.  
  34.    public LDAPSSLSocketFactory(String var1, Object var2, boolean var3) {
  35.       this.m_packageName = new String(var1);
  36.       this.m_cipherSuites = var2;
  37.       this.m_clientAuth = var3;
  38.    }
  39.  
  40.    public void enableClientAuth() {
  41.       this.m_clientAuth = true;
  42.    }
  43.  
  44.    public void enableClientAuth(String var1, String var2, String var3, String var4, String var5) throws LDAPException {
  45.       throw new LDAPException("Client auth not supported now");
  46.    }
  47.  
  48.    public boolean isClientAuth() {
  49.       return this.m_clientAuth;
  50.    }
  51.  
  52.    public String getSSLSocketImpl() {
  53.       return this.m_packageName;
  54.    }
  55.  
  56.    public Object getCipherSuites() {
  57.       return this.m_cipherSuites;
  58.    }
  59.  
  60.    public Socket makeSocket(String var1, int var2) throws LDAPException {
  61.       Object var3 = null;
  62.       if (this.m_clientAuth) {
  63.          try {
  64.             Method var4 = LDAPCheckComm.getMethod("netscape.security.PrivilegeManager", "enablePrivilege");
  65.             if (var4 != null) {
  66.                Object[] var5 = new Object[]{new String("ClientAuth")};
  67.                var4.invoke((Object)null, var5);
  68.             }
  69.          } catch (Exception var12) {
  70.             throw new LDAPException("Invoking enablePrivilege: " + ((Throwable)var12).toString(), 89);
  71.          }
  72.       }
  73.  
  74.       try {
  75.          String var15 = null;
  76.          if (this.m_cipherSuites != null) {
  77.             var15 = this.m_cipherSuites.getClass().getName();
  78.          }
  79.  
  80.          Class var16 = Class.forName(this.m_packageName);
  81.          Constructor[] var6 = var16.getConstructors();
  82.  
  83.          for(int var7 = 0; var7 < var6.length; ++var7) {
  84.             Class[] var8 = var6[var7].getParameterTypes();
  85.             if (this.m_cipherSuites == null && var8.length == 2 && var8[0].getName().equals("java.lang.String") && var8[1].getName().equals("int")) {
  86.                Object[] var17 = new Object[]{var1, new Integer(var2)};
  87.                Socket var14 = (Socket)var6[var7].newInstance(var17);
  88.                return var14;
  89.             }
  90.  
  91.             if (this.m_cipherSuites != null && var8.length == 3 && var8[0].getName().equals("java.lang.String") && var8[1].getName().equals("int") && var8[2].getName().equals(var15)) {
  92.                Object[] var9 = new Object[]{var1, new Integer(var2), this.m_cipherSuites};
  93.                Socket var13 = (Socket)var6[var7].newInstance(var9);
  94.                return var13;
  95.             }
  96.          }
  97.  
  98.          throw new LDAPException("No appropriate constructor in " + this.m_packageName, 89);
  99.       } catch (ClassNotFoundException var10) {
  100.          throw new LDAPException("Class " + this.m_packageName + " not found", 89);
  101.       } catch (Exception var11) {
  102.          throw new LDAPException("Failed to create SSL socket", 91);
  103.       }
  104.    }
  105. }
  106.