Autor Thema: Authentifizierung am HTTP-Task eines Domino8  (Gelesen 5418 mal)

Sebastianh

  • Gast
Authentifizierung am HTTP-Task eines Domino8
« am: 20.08.09 - 11:54:18 »
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();

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()));
        }
    }

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
« Letzte Änderung: 20.08.09 - 12:10:22 von Sebastianh »

Sebastianh

  • Gast
Re: Authentifizierung am HTTP-Task eines Domino8
« Antwort #1 am: 20.08.09 - 14:58:07 »
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

funktionieren soll. Tut es aber nicht. Hat das schonmal jemand gemacht, und kann mir einen Tip geben?

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Authentifizierung am HTTP-Task eines Domino8
« Antwort #2 am: 23.08.09 - 00:39:08 »
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.
« Letzte Änderung: 23.08.09 - 01:46:45 von Pitiyankee »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Sebastianh

  • Gast
Re: Authentifizierung am HTTP-Task eines Domino8
« Antwort #3 am: 24.08.09 - 10:43:58 »
Ok, Verbindung mit dem Jakartaclient funktioniert, in den LogAusgaben ist auch von einem Cookie die Rede:

Code
>> 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
Code
<!-- Page contents -->
ist vorhanden. Warum?

Sebastianh

  • Gast
Re: Authentifizierung am HTTP-Task eines Domino8
« Antwort #4 am: 24.08.09 - 12:26:53 »
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);

Was mache ich denn nur falsch? Ich will doch nur (endlich) die HTML-Darstellung des Dokuments haben!

Sebastianh

  • Gast
Re: Authentifizierung am HTTP-Task eines Domino8
« Antwort #5 am: 24.08.09 - 14:49:29 »
funktioniert!

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Authentifizierung am HTTP-Task eines Domino8
« Antwort #6 am: 24.08.09 - 18:40:11 »
Normal musst du dich um die Session-Cookies gar nicht zu kuemmern. Gibt dort irgendwelche preemptiveAuthentification, followRedirect flags. Die Details weiss ich aber z.Zt. auch nicht, da ich keinen Zugriff auf meinem Source code hab.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Sebastianh

  • Gast
Re: Authentifizierung am HTTP-Task eines Domino8
« Antwort #7 am: 26.08.09 - 15:31:49 »
von wegen funktioniert. Auf dem Testsystem läuft alles wunderbar, aber auf dem Produktivsystem wieder mal nicht. Solange ich Dokumente habe, die den Mime-Type text/text haben, funktioniert alles bestens. Frage ich allerdings ein Dokument vom Mime-Type html/text an, bekomme ich ein Dokument zurück, das einen Link enthält der auf "(Zusätzliche HTML angehängt)" verweist. Versuche ich den dahinterliegenden Link im Browser zu öffnen bekomme ich nur eine 404. Muss ich am Server noch irgendwas einstellen, damit es dem HTTP-Task erlaubt ist, mir mehr als nur text/text zu liefern?

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz