Author: bdonlan
Date: 2005-06-10 12:59:43 -0400 (Fri, 10 Jun 2005)
New Revision: 753

Modified:
   trunk/clients/Javer2/server.conf
   trunk/clients/Javer2/src/org/haverdev/haver/server/BasicAuthentication.java
Log:
Make the digest algorithm list configurable

Modified: trunk/clients/Javer2/server.conf
===================================================================
--- trunk/clients/Javer2/server.conf    2005-06-10 16:35:51 UTC (rev 752)
+++ trunk/clients/Javer2/server.conf    2005-06-10 16:59:43 UTC (rev 753)
@@ -25,6 +25,9 @@
 haver.auth.methods=basic
 haver.auth.basic.delegate=org.haverdev.haver.server.BasicAuthentication
 
+# A list of (haver auth digest name):(java digest SPI name)
+haver.digestMaps=sha512:SHA-512 sha256:SHA-256 sha1:SHA-1
+
 # Default chat channels (deprecated)
 #haver.ChatChannels=lobby,conspiracy,haver,creatures
 haver.ChatChannels=

Modified: 
trunk/clients/Javer2/src/org/haverdev/haver/server/BasicAuthentication.java
===================================================================
--- trunk/clients/Javer2/src/org/haverdev/haver/server/BasicAuthentication.java 
2005-06-10 16:35:51 UTC (rev 752)
+++ trunk/clients/Javer2/src/org/haverdev/haver/server/BasicAuthentication.java 
2005-06-10 16:59:43 UTC (rev 753)
@@ -22,7 +22,7 @@
  */
 public class BasicAuthentication extends UserCommandWrapper implements 
AuthProvider {
     
-    org.apache.log4j.Logger log = 
org.apache.log4j.Logger.getLogger(BasicAuthentication.class);
+    static org.apache.log4j.Logger log = 
org.apache.log4j.Logger.getLogger(BasicAuthentication.class);
     
     static java.util.Map algos;
     
@@ -32,18 +32,25 @@
             algos.put(havername, spiname);
         }
         catch (NoSuchAlgorithmException e) {
-            // XXX
+            log.error("Algorithm SPI " + spiname + " for " + havername + " not 
found", e);
         }
     }
     
     static void algoInit() {
         if (algos != null) return;
         
+        String algostr = System.getProperty("haver.digestMaps", 
"sha512:SHA-512 sha256:SHA-256 sha1:SHA-1");
+        String[] algolist = Misc.optionSplit(algostr);
         Map algotemp = new LinkedHashMap();
-        mapAlgo(algotemp, "sha512", "SHA-512");
-        mapAlgo(algotemp, "sha256", "SHA-256");
-        mapAlgo(algotemp, "sha1", "SHA-1");
-        mapAlgo(algotemp, "md5", "MD5");
+        
+        for (int i = 0; i < algolist.length; i++) {
+            String desc = algolist[i];
+            int sep = desc.indexOf(':');
+            String havername = desc.substring(0, sep);
+            String spiname = desc.substring(sep + 1);
+            mapAlgo(algotemp, havername, spiname);
+        }
+
         algos = Collections.unmodifiableMap(algotemp);
     }
     


Reply via email to