Nachteil von Passphrases in SSL-Zertifikaten

Merke: Passphrases in SSL-Zertifikaten hat nicht nur den nervigen Nebeneffekt, bei jedem Neustart des Servers das Passwort eingeben zu müssen. Es kann auch zu langen Fehlersuchen führen!

Das kann z.B. passieren wenn der Server sich unerwartet einfach mal neu startet und dann natürlich mangels Passphrase abbrechen muss. Aber warum sollte der Server sich auch neu starten, in der Crontab ist ja nicht dementsprechendes eingetragen!? Das tut er selbst, aus quasi eigenem Antrieb. Beispielsweise wöchentlich, um seine Logfiles rotieren zu lassen, nachts um drei. Und startet dann nicht mehr. Blöde Passphrases.

3 Kommentare 16.02.2009

JAXBElement<String>s als Parameter für Webservice-Methoden

Wenn das Problem auftritt, dass eine Webservice-Methode, die eigentlich einen String erwarten sollte (zB. “setUsername”) meint, einen Parameter vom Typ JAXBElement haben zu wollen, liegt dies an einer inkompatiblen Definition der WSDL. Definitionen à la minOccurs=”0″ für Parameter sind in Java einfach nicht so direkt abbildbar. Ein Quickfix für dieses Problem kann sein, die WSDL lokal zu kopieren und alle minOccurs=”0″ durch minOccurs=”1″ zu ersetzen. Der JAXB-Parser interpretiert dies dann ggf. als Strings.
Eine andere Lösung wäre die Definition eines externen Bindings, leider fehlt mir hierzu Muße und know-how. Der geneigte Leser findet hier weitere Infos.

1 Kommentar 22.12.2008

Zeitangaben in der MySQL Query Browser Statusleiste

Wer sich schon immer gefragt hat, was die Zeitangaben wie “3 Zeilen in $time1 s ($time2 s) geholt” in der Statusleiste des MySQL Query Browsers bedeuten, dem sei gesagt: $time1 ist die Dauer der Übertragung des Ergebnisses von Server zum Client, $time2 die tatsächliche Laufzeit des Statements auf dem Server selbst.

MySQL Query Browser Statusbar

MySQL Query Browser Statusbar

Kommentar hinzu 10.11.2008

SVN+SSH Howto (inkl. Netbeans)

  1. Keys auf dem Server erzeugen: ssh-keygen -t dsa
  2. Public-Key den authorized keys hinzufügen: cat .ssh/id_dsa.pub >> .ssh/authorized_keys
  3. Den beim Login eines Users auszuführenden Befehl hinterlegen. Dazu einfach in die Zeile des gerade eingetragenen Keys folgendes voranstellen: command=”svnserve -t -r <pfad zum repo>”
  4. Den Private-Key herunterladen zum Client.
  5. (Nur für Windows) Private Key umwandeln mit puttygen.exe in ein von putty lesbares Format.
  6. (Nur für Windows) plink.exe herunterladen (gibts genau wie puttygen.exe auf der Putty-Seite)
  7. In Netbeans “Versioning->Subversion->Checkout”. “SVN+SSH” auswählen. Host+Repo angeben, im Tunnelcommand eintragen:
  • Windows: <pfad zu plink.exe> -l <user> -i <pfad zum Putty-privatekey>
  • Unixe: ssh -l user -i <pfad zum privatekey>

Done!

PS: Wenn die Verbindung auf Anhieb nicht funktioniert, versucht einmal den Befehl auf der Konsole auszuführen. Oft hängt es an der Bestätigung des public keys des Servers.

Kommentar hinzu 23.10.2008

Probleme mit lokalen WSDL-Pfaden nach einem deploy

Heute mal wieder 2h in ein tolles Problem vom Typ “Also DA wär ich ja nie drauf gekommen” investiert: Nach einem deploy meiner kleinen Testapplikation springt mich der Tomcat mit einer FileNotFound-Exception an. Er könne die Datei /Users/<benutzer>/Netbeans/<Projekt>/Shopping.wsdl nicht finden und dementsprechend auch keinen Client dafür generieren. Nun ist es natürlich klar dass er da (auf dem Server) natürlich nichts findet, schließlich bezieht sich der Pfad auf die lokale Kopie der WSDL auf meinem Notebook. Wie aber teilt an seiner Applikation mit, dass sie sich doch direkt das Original aus dem Web laden soll, statt auf eine nicht existente lokale Kopie zu verlassen?

Nach einem Googlen bin ich folgenden Blog-Eintrag von Vivek Pandey gestoßen, der eine passende Lösung parat hat. Mir geholfen hat der Tipp, eine lokale “Katalogdatei” für JAX-WS anzulegen unter “META-INF/jax-ws-catalog.xml”, Inhalt der folgende:

<catalog xmlns=”urn:oasis:names:tc:entity:xmlns:xml:catalog” prefer=”system”>
<system systemId=”http://131.107.72.15/MTOM_Service_Indigo/Soap11MtomUtf8.svc?wsdl”
uri=”Soap11MtomUtf8.svc.xml”/>
</catalog>

Das wars. Wichtig in dem Zusammenhang: “systemId” zeigt logischer Weise auf die remote-URL der WSDL, die “uri” ist der lokale Pfad AUSGEHEND VON jax-ws-catalog.xml! In der Regel sollte dies also etwa wie folgt aussehen: uri=”../wsdl/client/myservice/path.to.myservice/Myservice.wsdl”.

Kommentar hinzu 21.07.2008

Nächste Artikel Vorherige Artikel


    Kalender

    July 2010
    M T W T F S S
    « Jan    
     1234
    567891011
    12131415161718
    19202122232425
    262728293031  

    Feeds

    Meta: