Author: bdonlan
Date: 2005-06-22 23:48:58 -0400 (Wed, 22 Jun 2005)
New Revision: 800

Added:
   trunk/java/src/org/haverdev/javer2/JaverApplet.form
   trunk/java/src/org/haverdev/javer2/JaverApplet.java
Modified:
   trunk/java/src/org/haverdev/client/BasicAuthenticationProvider.java
   trunk/java/src/org/haverdev/client/Client.java
   trunk/java/src/org/haverdev/common/BasicAuthenticationHasher.java
   trunk/java/src/org/haverdev/javer2/CMod.java
   trunk/java/src/org/haverdev/javer2/JaverForm.java
Log:
Applet! Yay!

Modified: trunk/java/src/org/haverdev/client/BasicAuthenticationProvider.java
===================================================================
--- trunk/java/src/org/haverdev/client/BasicAuthenticationProvider.java 
2005-06-22 19:12:40 UTC (rev 799)
+++ trunk/java/src/org/haverdev/client/BasicAuthenticationProvider.java 
2005-06-23 03:48:58 UTC (rev 800)
@@ -22,8 +22,8 @@
  */
 public abstract class BasicAuthenticationProvider extends AuthProvider {
     
-    static Map algos = null;
-    
+    static Set algos = BasicAuthenticationHasher.availableAlgos();
+   /* 
     static void mapAlgo(Map algos, String havername, String spiname) {
         try {
             MessageDigest.getInstance(spiname);
@@ -55,7 +55,7 @@
     static {
         algoInit();
     }
-    
+    */
     /** Creates a new instance of BasicAuthenticationProvider */
     public BasicAuthenticationProvider() {
     }
@@ -104,7 +104,7 @@
             String hash = null;
             
             for (int i = 2; i < args.length; i++) {
-                if (!this.algos.containsKey(args[i]))
+                if (!algos.contains(args[i]))
                     continue;
                 try {
                     hash = h.digest(args[i]);

Modified: trunk/java/src/org/haverdev/client/Client.java
===================================================================
--- trunk/java/src/org/haverdev/client/Client.java      2005-06-22 19:12:40 UTC 
(rev 799)
+++ trunk/java/src/org/haverdev/client/Client.java      2005-06-23 03:48:58 UTC 
(rev 800)
@@ -401,6 +401,7 @@
                 Object o = writeQ.block();
                 if (o instanceof WriteLine) {
                     writer.print(o);
+                    System.out.print("C: " + o);
                     if (!writeQ.hasData())
                         writer.flush();
                 } else {

Modified: trunk/java/src/org/haverdev/common/BasicAuthenticationHasher.java
===================================================================
--- trunk/java/src/org/haverdev/common/BasicAuthenticationHasher.java   
2005-06-22 19:12:40 UTC (rev 799)
+++ trunk/java/src/org/haverdev/common/BasicAuthenticationHasher.java   
2005-06-23 03:48:58 UTC (rev 800)
@@ -36,7 +36,13 @@
     static void algoInit() {
         if (algos != null) return;
         
-        String algostr = System.getProperty("haver.digestMaps", 
"sha512:SHA-512 sha256:SHA-256 sha1:SHA-1");
+        String algostr = "sha512:SHA-512 sha256:SHA-256 sha1:SHA-1";
+        try {
+            // XXX: applets can't access this property
+            String temp = System.getProperty("haver.digestMaps");
+            if (temp != null)
+                algostr = temp;
+        } catch (Throwable t) {}
         String[] algolist = HaverEncoding.optionSplit(algostr);
         Map algotemp = new LinkedHashMap();
         

Modified: trunk/java/src/org/haverdev/javer2/CMod.java
===================================================================
--- trunk/java/src/org/haverdev/javer2/CMod.java        2005-06-22 19:12:40 UTC 
(rev 799)
+++ trunk/java/src/org/haverdev/javer2/CMod.java        2005-06-23 03:48:58 UTC 
(rev 800)
@@ -57,7 +57,7 @@
     static final int STATE_VOTE = 3;
     
     static final int joinTimeout = 30;
-    static final int chatTimeout = 3; // XXX
+    static final int chatTimeout = 300;
     
     int current_state = 0;
     

Added: trunk/java/src/org/haverdev/javer2/JaverApplet.form
===================================================================
--- trunk/java/src/org/haverdev/javer2/JaverApplet.form 2005-06-22 19:12:40 UTC 
(rev 799)
+++ trunk/java/src/org/haverdev/javer2/JaverApplet.form 2005-06-23 03:48:58 UTC 
(rev 800)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.0" type="org.netbeans.modules.form.forminfo.JAppletFormInfo">
+  <AuxValues>
+    <AuxValue name="FormSettings_generateMnemonicsCode" 
type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" 
type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" 
value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" 
value="2"/>
+  </AuxValues>
+
+  <Layout 
class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
+</Form>

Added: trunk/java/src/org/haverdev/javer2/JaverApplet.java
===================================================================
--- trunk/java/src/org/haverdev/javer2/JaverApplet.java 2005-06-22 19:12:40 UTC 
(rev 799)
+++ trunk/java/src/org/haverdev/javer2/JaverApplet.java 2005-06-23 03:48:58 UTC 
(rev 800)
@@ -0,0 +1,157 @@
+/*
+ * JaverApplet.java
+ *
+ * Created on June 21, 2005, 4:06 PM
+ */
+
+package org.haverdev.javer2;
+import java.security.*;
+import javax.net.ssl.*;
+import javax.net.*;
+import java.io.*;
+import java.net.*;
+
+import javax.swing.*;
+import java.awt.*;
+
+/**
+ *
+ * @author  bdonlan
+ */
+public class JaverApplet extends javax.swing.JApplet {
+    
+    boolean ssl = false;
+    TrustManager[] ssltrust = null;
+    SocketFactory sf = null;
+    
+    String host = null;
+    int port = -1;
+    
+    void paramInit() throws Throwable {
+        
+        host = getParameter("host");
+        port = Integer.parseInt(getParameter("port"));
+        
+        String sslStr = getParameter("ssl");
+        ssl = Boolean.parseBoolean(sslStr);
+        if (ssl) {
+            String sslKeyStore = getParameter("keystore");
+            String storePass   = getParameter("keystorePassword");
+            String storeType   = getParameter("keystoreType");
+            String factoryAlgo = getParameter("trustFactoryAlgo");
+            if (storeType == null)
+                storeType = KeyStore.getDefaultType();
+            if (factoryAlgo == null)
+                factoryAlgo = TrustManagerFactory.getDefaultAlgorithm();
+            InputStream keyStoreStream = new URL(getCodeBase(), 
sslKeyStore).openStream();
+            KeyStore store = KeyStore.getInstance(storeType);
+            store.load(keyStoreStream, storePass.toCharArray());
+            
+            TrustManagerFactory factory = 
TrustManagerFactory.getInstance(factoryAlgo);
+            factory.init(store);
+            
+            TrustManager[] tms = factory.getTrustManagers();
+            
+            SSLContext ctx = SSLContext.getInstance("SSL");
+            ctx.init(null, tms, null);
+            
+            sf = ctx.getSocketFactory();
+        } else {
+            sf = SocketFactory.getDefault();
+        }
+    }
+    
+    void crashAndBurn(Throwable t) {
+        Container contentPane = getContentPane();
+        contentPane.removeAll();
+        
+        JScrollPane sp = new JScrollPane();
+        JTextPane tp = new JTextPane();
+        
+        sp.setViewportView(tp);
+        
+        StringWriter w = new StringWriter();
+        PrintWriter pw = new PrintWriter(w);
+        
+        pw.println("Applet initialization failed:");
+        t.printStackTrace(pw);
+        pw.close();
+        
+        tp.setText(w.getBuffer().toString());
+        
+        contentPane.add(sp);
+    }
+    
+    JaverForm f = null;
+    
+    /** Initializes the applet JaverApplet */
+    public void init() {
+        System.out.println("init()");
+        try {
+            paramInit();
+        } catch (final Throwable t) {
+            try {
+                EventQueue.invokeAndWait(new Runnable() {
+                    public void run() {
+                        crashAndBurn(t);
+                    }
+                });
+            } catch (Throwable t2) {
+                t2.printStackTrace();
+            }
+            return;
+        }
+        
+        
+        try {
+            java.awt.EventQueue.invokeAndWait(new Runnable() {
+                public void run() {
+                    try {
+                        getContentPane().add(f = new JaverForm(host, port, 
sf));
+                    } catch (Throwable t) {
+                        crashAndBurn(t);
+                    }
+                }
+            });
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+    }
+    
+    public void destroy() {
+        System.out.println("destroy()");
+        try {
+            java.awt.EventQueue.invokeAndWait(new Runnable() {
+                public void run() {
+                    if (f != null) {
+                        if (f.cli != null) {
+                            f.cli.disconnect();
+                        }
+                        f = null;
+                    }
+                    getContentPane().removeAll();
+                }
+            });
+        } catch (Throwable t) {
+            t.printStackTrace();
+        }
+    }
+    
+    /** This method is called from within the init() method to
+     * initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is
+     * always regenerated by the Form Editor.
+     *
+     * XXX: not actually used.
+     */
+    // <editor-fold defaultstate="collapsed" desc=" Generated Code 
">//GEN-BEGIN:initComponents
+    private void initComponents() {
+
+    }
+    // </editor-fold>//GEN-END:initComponents
+    
+    
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    // End of variables declaration//GEN-END:variables
+    
+}


Property changes on: trunk/java/src/org/haverdev/javer2/JaverApplet.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: trunk/java/src/org/haverdev/javer2/JaverForm.java
===================================================================
--- trunk/java/src/org/haverdev/javer2/JaverForm.java   2005-06-22 19:12:40 UTC 
(rev 799)
+++ trunk/java/src/org/haverdev/javer2/JaverForm.java   2005-06-23 03:48:58 UTC 
(rev 800)
@@ -22,6 +22,20 @@
  */
 public class JaverForm extends javax.swing.JPanel {
     
+    public static final TrustManager[] trustAllCerts = new TrustManager[]{
+        new X509TrustManager() {
+            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
+                return null;
+            }
+            public void checkClientTrusted(
+                java.security.cert.X509Certificate[] certs, String authType) {
+            }
+            public void checkServerTrusted(
+                java.security.cert.X509Certificate[] certs, String authType) {
+            }
+        }
+    };
+    
     String host;
     int port;
     Thread connectThread = null;
@@ -136,9 +150,6 @@
         serverpane = new ServerPane();
         addPane(serverpane);
         serverpane.putLine("Welcome to haver! Enter your username to login");
-        if (factory instanceof SSLSocketFactory) {
-            serverpane.putLine("Warning: SSL mode in use. Currently, no server 
certificate authentication is performed on SSL connections. There is no 
protection against man-in-the-middle attacks.");
-        }
         
         setPreferredSize(new java.awt.Dimension(320, 240));
     }


Reply via email to