tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
2104
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    StehtimSchilf StehtimSchilf ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Beiträge
    114
    Hi Forum

    In meiner Appli lässt sich ein integrierter Web-Server via .properties-Datei konfigurieren. Man gibt einfach den Listener Port ein (bspw. 8080) und ob SSL verwendet werden soll oder nicht.

    Bspw.:
    webserver.port = 8080
    ;1 = use ssl (https), else http-connection
    webserver.ssl = 1

    in diesem Fall, kann eine Webseite https://localhost:8080 aufgerufen werden
    oder
    webserver.port = 12345
    ;1 = use ssl (https), else http-connection
    webserver.ssl = 0

    Webseite: http://localhost:12345

    So, das funktioniert sehr schön!

    Wenn der admin nun ssl konfiguriert aber der Benutzer einfach nur http:// eingibt, erhält der Benutzer eine Seite mit Hieroglyphen (Zudem wird eine eben die Exception: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?) geschmissen.

    Wie kann ich dies nun abfangen? ich möchte, dass dem Benutzer trotzdem eine Webseite angezeigt wird, dass er eben https:// verwenden muss! Ich habe versucht in den OutputStream des Sockets zu schreiben, aber eben, das t auch nicht!

    Ideen?

    cheerioh & thx
    SiS
     

  2. #2
    Avatar von schnuffie
    schnuffie schnuffie ist offline Mitglied Platin
    Registriert seit
    Oct 2004
    Ort
    Ober-Roden (Hessen)
    Beiträge
    725
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    private void call(URL url) throws AnwendungsException {
    try {
       [COLOR=lime]// mach was[/COLOR] 
    } catch (SSLException e) {
       if (url.toString().startsWith("http://") {
         call(new URL("https", url.getHost(), url.getPort(), url.getFile())); [COLOR=lime]// erneuter Aufruf[/COLOR]
      } else {
         throw new AnwendungsException(e);
      }
    }
    }
     
    CU schnuffie

    Fragliche Fragen stellende Fragensteller sind für verantwortungslose Antworten antwortender verantwortlicher Antworter selbst verantwortlich.

  3. #3
    StehtimSchilf StehtimSchilf ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Beiträge
    114
    Danke, aber ich verwende einen Socket. Kann ich da auch irgendwie das Protokoll auslesen?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
                if (this.isSSLConnection) {
                    clientSocket = sslss.accept();
                } else {
                    clientSocket = ss.accept();
                }
     
                BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream(), Charset.forName("ISO-8859-1")));
                String line = in.readLine();  // hier javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?


    Oder muss ich das irgendwie anders lösen?

    Thx & Gruess
    SiS
     

  4. #4
    StehtimSchilf StehtimSchilf ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Beiträge
    114
    ich hab etwas im Sinne von

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
     
                try {
                    line = in.readLine();
                } catch (SSLException se) {
                    if (se.getMessage().toLowerCase().indexOf("plaintext") != -1) {
                        PrintWriter out = new PrintWriter(clientSocket.getOutputStream());
                        out.print("HTTP/1.1 301 Moved Permanently\n");
                        out.print("Server: My Server\n");
                        out.print("Location: https://1.1.1.0:1234");
                        out.print("Content-Type: text/html\n\n");
                        out.println("SSL connection required."); // Click <a href='" + getLoginUrl() + "'>here</a> to return to login site!");
                        out.close();
                        in.close();
                        clientSocket.close();
                        return;             
                    } else {
                        throw new Exception(se);
                    }
                }

    Doch auch das funktioniert irgendwie nicht! Kann doch nicht so schwierig sein, ein Redirekt zu machen, wenn ein Benutzer mit http daher kommt aber https gefordert ist?

    Gruz & Danke
    SiS
     

  5. #5
    StehtimSchilf StehtimSchilf ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Beiträge
    114
    hochschieben.
     

Ähnliche Themen

  1. Rückmeldung nach DB eintrag
    Von funnyzocker im Forum PHP
    Antworten: 2
    Letzter Beitrag: 05.09.07, 12:44
  2. SWT: GUI -> Keine Rückmeldung
    Von RipdEaTh im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 5
    Letzter Beitrag: 07.12.06, 23:32
  3. Antworten: 0
    Letzter Beitrag: 15.05.06, 12:14
  4. JDOM + Unrecognized Type
    Von bl4ck29 im Forum Java
    Antworten: 0
    Letzter Beitrag: 29.06.05, 20:21
  5. Bekomme keine Rückmeldung
    Von borsti im Forum Flash Plattform
    Antworten: 11
    Letzter Beitrag: 19.04.05, 15:17