Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
Authentifizierung am HTTP-Task eines Domino8
Sebastianh:
Hallo,
an meinem Domino7 Testsystem kann ich mich folgenderweise wunderbar authentifizieren:
--- Code: ---String httpUrl = memo.getHttpURL();
Authenticator.setDefault(new MyAuthenticator(config.getNotesUser(), config.getNotesPassword()));
URL url = new URL(httpUrl);
URLConnection conn = url.openConnection();
InputStream input = conn.getInputStream();
conn.connect();
--- Ende Code ---
mit
--- Code: ---class MyAuthenticator extends Authenticator {
String user = "";
String password = "";
MyAuthenticator(String u, String pw){
user = u;
password = pw;
}
public PasswordAuthentication getPasswordAuthentication() {
return (new PasswordAuthentication(user, password.toCharArray()));
}
}
--- Ende Code ---
danach kann ich mir aus dem Inputstream die HTML-Seite holen. Klappt wunderbar. Auf einem Domino8 dagegen bekomme ich eine HTML-Seite zurück, die lediglich ein Formular beinhaltet, mit dem ich mich am Server anmelden soll, und dann via Redirect zur Seite des Dokuments im Webmailer weiterleitet. Muss der Server irgendwelche spezifischen Einstellungen haben, damit ich mich programmatisch am HTTP-Task authentifizieren darf, oder was mache ich falsch?
(Benutzer und Passwort sind definitiv richtig (im Webmailer gegengeprüft!))
edit: an meinem Domino8 Testsystem funktioniert es auch, nur am Produktivsystem nicht
Gruß,
Sebastian
Sebastianh:
inzwischen habe ich dank eines anderen Forums raus, dass es an der Einstellung:
Session Authentication
liegt. Ist diese nicht disabled, kommt es zu dem von mir beschriebenen Verhalten. Also muss ich mich via URL anmelden, was via:
--- Code: ---http://ServerName/names.nsf?Login&username=Name&password=PW
--- Ende Code ---
funktionieren soll. Tut es aber nicht. Hat das schonmal jemand gemacht, und kann mir einen Tip geben?
flaite:
Am einfachsten ist es, du benutzt die Klassen von jakarta HttpClient.
Der code dieses openSource Projekts regelt das mit den session cookies, automatisches Folgen von redirections, etc. selbst.
Versuch google: jakarta httpClient. Da findest du Tutorials, Beispiele, etc.
Sebastianh:
Ok, Verbindung mit dem Jakartaclient funktioniert, in den LogAusgaben ist auch von einem Cookie die Rede:
--- Code: --->> Cookie: DomAuthSessId=38A2841E63...
--- Ende Code ---
Wenn ich allerdings nach der ersten Verbindung ein konkretes Dokument anfrage, bekomme ich eine HTML-Seite zurück, die jede Menge JavaScript beinhaltet, aber Null Content. Lediglich
--- Code: ---<!-- Page contents -->
--- Ende Code ---
ist vorhanden. Warum?
Sebastianh:
mittlerweile übergebe ich das Cookie von der einen an die andere Verbindung, so dass ich nach wie Authentifiziert sein sollte, trotzdem bekomme ich keinen Content vom HTTP-Task zurück:
--- Code: ---CookieStore cs = httpclient.getCookieStore();
List<Cookie> cookies = cs.getCookies();
Cookie sessIDCookie = null;
for(Cookie c : cookies){
if(c.getName().equals("DomAuthSessId")){
sessIDCookie = c;
}
}
DefaultHttpClient httpclient2 = new DefaultHttpClient();
httpclient2.getCookieStore().addCookie(sessIDCookie);
--- Ende Code ---
Was mache ich denn nur falsch? Ich will doch nur (endlich) die HTML-Darstellung des Dokuments haben!
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln