----------------------------------------------------------------
BEFORE YOU POST, search the faq at <http://java.apache.org/faq/>
WHEN YOU POST, include all relevant version numbers, log files,
and configuration files.  Don't make us guess your problem!!!
----------------------------------------------------------------

Hi,

The question was how to get the User:password out of the 
  "Basic sjuydamuwrtwye=" 

Here is a little method I wrote: (comments in german, sorry)
it works for me, are there better solutions??

    //
    // Authorization aus dem http-header in Klartext wandeln
    //
    private String getAuth( String auth, PrintWriter toClient )
    {
      if (auth==null) { // Notausgang falls kein Authorization da ist...
        return ":";
      }
      int detable[] = {  // ASCII-Tabelle fuer base64 dekodierung
            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,                // 0..15
            0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,                //16..31
            0,0,0,0,0,0,0,0,0,0,0,62,0,0,0,63,              // 32..47
            52,53,54,55,56,57,58,59,60,61,0,0,0,0,0,0,      // 48..63
            0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,           // 64..79
            15,16,17,18,19,20,21,22,23,24,25,0,0,0,0,0,     // 80-95
            0,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40, // 96..111
            41,42,43,44,45,46,47,48,49,50,51,0,0,0,0,0      // 112..127
          };
      long x;
      int pp,px;
      char ax[]=new char[auth.length()];// ...laenger als noetig
      if (auth.startsWith("Basic")) {  // ich kann nur Basic
        auth=auth.substring(6); // 'Basic ' abschneiden...
        char p[]=auth.toCharArray(); // restlichen String zum char array wandeln
           // Nach "Basic " beginnt der kodierte Authentication String
           // Der String ist nach dem Base64 Verfahren kodiert.
           // Es sind drei Bytes aus dem Originalstring zu vier
           // Zeichen (aus 64 ==> 6bit ) kodiert.
           // Fuer jedes der 64 verwendeten Zeichen haben wir dessen
           // Bit-Wert in der detable gespeichert (z.B. 'Z' entspr. 24
           // also ist detable['Z'] = 24)
           // Die vier erhaltenen Werte werden mit ihrer Wertigkeit (64^3...64^0)
           // multipliziert und aufaddiert  es entsteht ein 24bit langer Wert,
           // der anschliessend durch maskieren und verschieben in 3 Bytes
           // getrennt wird. Die Bytes werden nacheinander in ein char array
           // abgespeichert.
           // (!) Die Sonderbehandlung fuer das Stringende ist etwas ungeschickt
           //     eingebaut worden (noch verbesserungsfaehig!!):
           //     ein '=' am Schluss besagt, dass das letzte Byte aus dem
           //     Dreierblock nicht vorhanden war, ein '==' am Schluss besagt,
           //     dass die letzten beiden Bytes nicht vorhanden waren.
        for (pp=0,px=0;pp<auth.length();) {
         x=  detable[p[pp++]]*64*64*64;
         x+= detable[p[pp++]]*64*64;
         x+= detable[p[pp++]]*64;
         x+= detable[p[pp++]];
         ax[px++]=(char)(byte)((x&0xff0000)>>16);
         if (p[pp-2]!='=') ax[px++]=(char)(byte)((x&0xff00)>>8);
         if (p[pp-1]!='=') ax[px++]=(char)(byte)(x&0xff);
        }
      } else {
        toClient.println("<B>Passwort-Methode <em>" + auth
                       + "</em> nicht unterstuetzt!</B><BR>" );
        ax[0]=':'; //leeres User:Passwort-Paar
      }
      // wenn alles klappte:
      return String.valueOf(ax).trim();
    }

------------------------------------------------------------------------
Frank Rust                      Technische Universitaet Braunschweig
Tel.:  +49 531 391 9525         Institut fuer Theoretische Informatik
Fax.:  +49 531 391 9529         Fallersleber-Tor-Wall 22
email: [EMAIL PROTECTED]    38100 Braunschweig




--
--------------------------------------------------------------
Please read the FAQ! <http://java.apache.org/faq/>
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Archives and Other:  <http://java.apache.org/main/mail.html>
Problems?:           [EMAIL PROTECTED]

Reply via email to