Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: joshuax112 am 24.07.07 - 14:40:59
-
Hallo,
ich habe einen WebService geschrieben und möchte diesen nun gerne absichern. Leider finde ich im Netz zum Teil die Auskunft, dass dies erst im nächsten Release möglich ist bzw. man über JS gehen sollte. Gibt es auch einen "einfachen" Weg sich am WebService anzumelden?
Vielen Dank, Joshi
-
-edit funktioniert gerade nicht-
Als Client möchte ich ein Javaprogramm einsetzen.
-
Schon der Domino 6 Server unterstützt die
BASE64 Standard Authorization.
Man kann sich also z.B. per Java problemlos am Domino Webserver anmelden,
und ?CreateDocument, ?SaveDocument und ?DeleteDocument Befehle absetzen,
die dann genau mit den Rechten des Benutzers ausgeführt werden.
String base64 = "Basic " + new sun.misc.BASE64Encoder().encode( userDB24.getBytes() );
URLConnection connection = url.openConnection();
connection.setRequestProperty( "Authorization", base64 );
connection.setUseCaches( false );
connection.setDoOutput( true );
Is' ne rattenscharfe Geschichte.
Gruß,
Uwe
-
Du mußt einfach in der ACL der Datenbank default die Leserrechte wegnehmen.
Ich würd jakarta HTTP Client von jakarta.commons benutzen anstatt URLConnection.
geht damit wesentlich einfacher:
- SSL
- Anmeldung beim outbound HTTPProxy
- automatisches Folgen von Redirection HTTP Responses
- Komprimierung
- vieles andere mehr
- Unterstützung von verschiedenen Zeichensätzen
Im download (http://jakarta.apache.org/commons/httpclient/downloads.html, beachte: http://jakarta.apache.org/commons/httpclient/dependencies.html) finden sich brauchbare Beispiele und in für Java Programmierer an sich recht sinnvollen jakarta commons Büchern wird das ausreichend beschrieben (leider oft noch die etwas schlechtere 2.0 Version).
Ich konnte das auch in Domino 6 als SOAP Client verwenden, der einen Webservice von SAP NetWeaver konsumierte.
Client Authentification sollte immer zusammen mit SSL verwendet werden, weil sonst per sniffer Passwörter ausgelesen werden können. Base64 ist einfach kein Verschlüsselungsmechanismus sondern reine Konvertierung. Es gibt auch eigene Webservice Authentifizierungs-Mechanismen, die aber heutzutage meist nur teilweise implementiert sind und auch nicht nötig sind, weil die SSL/Basic Authentification Verbindung für die meisten Fälle ausreicht.
Ich halte es ausserdem für fragwürdig, ob die Domino SOAP Implementierung zur Zeit überhaupt Sinn macht. Ich hab mich in einem Fall dazu entschieden einfach einen Agenten zu schreiben, der ein XML Dokument entgegennimmt und parsed. Das ganze firmiert unter dem Namen POX (Plain Old XML) Webservice.
Gruß Axel
-
Hallo und vielen Dank für die ausführlichen Antworten. Ich versuchen es so umzusetzen.
Vielen Dank und euch ein schönes, baldiges Wochenende,
Joshi