Hallo,
an meinem Domino7 Testsystem kann ich mich folgenderweise wunderbar authentifizieren:
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();
mit
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()));
}
}
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
inzwischen habe ich dank eines anderen Forums (http://www.dominoforum.de) 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:
http://ServerName/names.nsf?Login&username=Name&password=PW
funktionieren soll. Tut es aber nicht. Hat das schonmal jemand gemacht, und kann mir einen Tip geben?
Ok, Verbindung mit dem Jakartaclient funktioniert, in den LogAusgaben ist auch von einem Cookie die Rede:
>> Cookie: DomAuthSessId=38A2841E63...
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 ist vorhanden. Warum?
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:
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);
Was mache ich denn nur falsch? Ich will doch nur (endlich) die HTML-Darstellung des Dokuments haben!