HTTP Login mit CAS Authentisierung über SSL

Saiga

Neues Mitglied
Ich hoffe jemand kann mir bei folgendem Problem helfen:

Ich muss ein Programm schreiben, das sich mit vorgegebenen Logindaten auf einer Webseite einloggt um von dort Daten auszulesen. Das Problem ist das der Login über eine SSL Verbindung und einen CAS Server läuft.

Ich hab schon den Loginvorgang per Live HTTP Headers plugin protokolliert und versucht die entsprechenden Verbindungen nachzubilden(da ein normales übergeben der Logindaten per POST Methode auch nicht funktioniert hat), aber ich werde immer wieder zur Loginseite zurück geschickt.

Wäre schön wenn jemand evtl. ein paar allgemeine Sachen weiß die man bei CAS/SSL beachten müsste.
Ansonsten werd ich morgen noch den schon vorhandenen CODE einfügen.

Hier mal ein ausschnitt des Codes den ich bis jetzt hab

Java:
			URL url = new URL("https://cas01.wmgruppe.de/cas/login?service=http%3A%2F%2Fwww.wmdaten.de%2Fcustomer%2Fevt_pro2_cas.php%3Fpage_number%3D0");
			HttpsURLConnection loginverbindung = (HttpsURLConnection) url.openConnection();
			loginverbindung.setDoInput(true);
			
			BufferedReader einlesen = new BufferedReader(new InputStreamReader(loginverbindung.getInputStream()));
		    
		    while((line=einlesen.readLine()) != null){	  			// Hier lese ich nen Random generierten Code ein für den kommenden POST Header
		    	Matcher vergleich = musterlt.matcher(line);
		    	if (vergleich.find()){
		    		lt = line.substring(vergleich.start(), vergleich.end());
		    		break;
		    	}
		    }
		    String headerName;
			
			for (int z=1; (headerName = loginverbindung.getHeaderFieldKey(z))!=null; z++) {			//Hier lese ich die zu setzenden Cookies aus
			 	if (headerName.equals("Set-Cookie")) {                  
			 	cookie += loginverbindung.getHeaderField(z); 
			 	}			 	
			}
		    einlesen.close();
		    
		    StringTokenizer st = new StringTokenizer(cookie,"=; ");
			String[] Tokens = new String[st.countTokens()];
			int c=0;
			while (st.hasMoreTokens())
			{
				Tokens[c] = st.nextToken();
				c++;
			};
		    
		    String loginwert="username=" + logindaten.getProperty("login") + "&password=" + logindaten.getProperty("pw") + "&lt="+ lt +"&_eventId=submit&submit=Login";			//Das soll beim POST aufruf übergeben werden
			Integer length = new Integer(loginwert.length());
			
			verbindung = (HttpsURLConnection) new URL("https://cas01.wmgruppe.de/cas/login;jsessionid="+Tokens[1]+"?service=http%3A%2F%2Fwww.wmdaten.de%2Fcustomer%2Fevt_pro2_cas.php%3Fpage_number%3D0").openConnection();
			verbindung.setRequestProperty("Content-Length", length.toString());
			verbindung.setRequestMethod("POST");
			verbindung.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7");
			verbindung.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
			verbindung.setRequestProperty("Cookie",Tokens[0]+"="+Tokens[1]);
			verbindung.setRequestProperty("Referer",loginverbindung.getURL().toString());
			verbindung.setDoOutput(true);
			
			PrintWriter out = new PrintWriter(verbindung.getOutputStream());
	        out.println(loginwert);
			out.close();

Danach versuch ich die automatische Weiterleitung die im Browser passiert nach zu bilden

Java:
			verbindung = (HttpURLConnection) new URL(verbindung.getHeaderField("Location")).openConnection();
			verbindung.setRequestMethod("GET");
			verbindung.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7");
			verbindung.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
			st = new StringTokenizer(verbindung.getHeaderField("Set-Cookie"),"; ");
			Tokens = new String[st.countTokens()];
			c=0;
			
			while (st.hasMoreTokens())
			{
				Tokens[c] = st.nextToken();
				c++;
			};
			cookie=Tokens[0];

			verbindung = (HttpURLConnection) new URL("http://www.wmdaten.de/customer/evt_pro2_cas.php?&page_number=" + i).openConnection();
			verbindung.setRequestMethod("GET");
			verbindung.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7");
			verbindung.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
			verbindung.setRequestProperty("Cookie", cookie);

und trotz alledem lande ich anschließend auf ner Fehlerseite die mir sagt das ich ne CAS Authentisierung brauch.

Ich hab mal die ausgelesenen Header vom Loginvorgang angehängt(Username und PW hab ich unkenntlich gemacht)
 

Anhänge

  • Header2.txt
    6,7 KB · Aufrufe: 4
Zuletzt bearbeitet:

FArt

Top Contributor
Ich weiß nicht wie gut du dich denn überhaupt mit CAS auskennst, oder mit SSL bzw. mit der Java (Web-)programmierung.

Aber eine Frage stellt sich mir:
Welches Problem ließ sich dort nicht lösen: CAS | Jasig Community ? Umfangreiche Doku, Mailingliste, FAQs, Community, ...
 

Saiga

Neues Mitglied
Das ist mein erstes größeres JAVA-Projekt und mit SSL und CAS hab ich vorher auch keine Erfahrung gesammelt(was wahrscheinlich mein Problem mit der Aufgabe erklärt). Ich hab mir auf der CAS-Seite der Yale-Uni die Funktionsweise einer CAS Authentisierung angeschaut und ich glaub das hab ich einigermaßen begriffen, was SSL angeht dachte ich eigendlich das es reicht wenn die Verbindung eine HttpsURLConnection ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Jenkins Login per Java Download Manager Netzwerkprogrammierung 15
T HTTP JSoup Automatic Website Login Netzwerkprogrammierung 1
Q-bert Link zugang ohne login sperren. Netzwerkprogrammierung 1
S Jsoup Login auf Schulserver Netzwerkprogrammierung 3
T Netzwerk Login Felder ansprechen Netzwerkprogrammierung 1
M HTTPS Login & etwas posten Netzwerkprogrammierung 0
M Sicheres Login-System für App implementieren Netzwerkprogrammierung 6
K Login Shibboleth Netzwerkprogrammierung 0
L Mit Java über PHP in MySQL anmelden (Login script) Netzwerkprogrammierung 3
N HTTP Apache 4.2.1 HttpClient 302 nach Login und auf den weiteren Seiten. Netzwerkprogrammierung 5
D HTTP Frage zu Login & Session ID Netzwerkprogrammierung 5
J Login Bereich auf jeder Seite Netzwerkprogrammierung 4
G Cookie Verwaltungs Problem nach Login auf InetSeite (Wo utma-Cookie?) Netzwerkprogrammierung 18
I HTTP S - Zertifikate+Cockies für Form-basierten Login Netzwerkprogrammierung 2
S Automatischer Login auf einer Webseite Netzwerkprogrammierung 12
E Webseite mit Login laden Netzwerkprogrammierung 5
C Login ohne Erfolg Netzwerkprogrammierung 2
xDarkSunx Hilfe Chat Login Netzwerkprogrammierung 7
T Java => Login mit MySQL Netzwerkprogrammierung 10
M Login mit HtmlUnit Netzwerkprogrammierung 6
K Login via apache httpclient Netzwerkprogrammierung 4
N Login mit Roboter Netzwerkprogrammierung 16
M Servlet als Login Netzwerkprogrammierung 20
J Socket Doppel Login geht nicht Netzwerkprogrammierung 11
N Login auf Website Netzwerkprogrammierung 11
H HTTP Login mit POSTMethod und httpClient Netzwerkprogrammierung 5
K HTTP Login Internetseite Netzwerkprogrammierung 17
lordcarlos HTTP Apache HttpClient, post und login. Netzwerkprogrammierung 2
G ftp login Netzwerkprogrammierung 10
L Web Login Netzwerkprogrammierung 3
K Bad Request nach Form Login in Jakarta HttpClient Netzwerkprogrammierung 4
H Login Chatsystem Netzwerkprogrammierung 5
2 Redirect, Login und Download bei Rapidshare.com Netzwerkprogrammierung 4
lebenlechzer Login per Telnet auf Router Netzwerkprogrammierung 2
N icq login Netzwerkprogrammierung 16
M Problem: connection abbrechen und login erkennen Netzwerkprogrammierung 2
C Login bei einem php-script Netzwerkprogrammierung 2
K Tabelle im Web über Listener aufrufen Netzwerkprogrammierung 1
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
S Socket Bilder über Socket Senden Netzwerkprogrammierung 0
B Zip Dateien über FTP laden Netzwerkprogrammierung 2
x46 byte[] über BufferedReader auslesen Netzwerkprogrammierung 18
E Socket Parameter über Sockets übergeben und auslesen ! Netzwerkprogrammierung 5
L Webbasierte Anwendung - Authentifizierung über LDAP/ActiveDirectory Netzwerkprogrammierung 5
J Probleme mit Multicast über IPv6, DatagramChannel Netzwerkprogrammierung 1
S Daten über TCP/IP senden Netzwerkprogrammierung 3
T Broadcast-message über spez. Netzwerk-Schnittstelle Netzwerkprogrammierung 1
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
M Erstelltes Programm über Internet Browser ausführen Netzwerkprogrammierung 26
T VPN-Verbindung über Java Netzwerkprogrammierung 4
V Einfachen Javaserver über das Internet erreichbar machen Netzwerkprogrammierung 2
J FTP Upload über Proxy funktioniert nicht Netzwerkprogrammierung 1
E Kurze Textnachrichten über einen Server von meinem Handy auf den Computer laden. Netzwerkprogrammierung 9
J FTP FTP Zugriff über Proxy Server Netzwerkprogrammierung 1
Thallius Java Application über ZScaler benutzer? Netzwerkprogrammierung 0
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
V einfaches hin und her von Text über Server Netzwerkprogrammierung 2
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
antonbracke Multiuser Software über XMPP Server Netzwerkprogrammierung 1
Z Verbindung zwischen 2 Rechnern über ServerSockets nicht möglich Netzwerkprogrammierung 3
cezary Socket ServerSocket starten über GUIIm unterstehenden Code versuche Netzwerkprogrammierung 6
I ASCII über serielle Schnittstelle Netzwerkprogrammierung 1
N RMI "RMI über Lan funktioniert nicht" & "RMI-Server im Lan scannen" Netzwerkprogrammierung 13
M Socket String Arrays über Socket an Server schicken Netzwerkprogrammierung 2
T Socket Methoden über Internet aufrufen Netzwerkprogrammierung 1
S Socket Kommunikation über Internet Netzwerkprogrammierung 1
X Problem mit vielen Bytes über Socket Netzwerkprogrammierung 23
K ByteArray über Netzwerk senden klappt nicht Netzwerkprogrammierung 5
M allgemeine Frage über Server-Client-Kommunikation Netzwerkprogrammierung 5
P RMI Threads die über RMI auf Datenbank zugreifen Netzwerkprogrammierung 2
S Datei schreiben über Applet Netzwerkprogrammierung 8
G Klassen über Netzwerk kommunizieren lassen Netzwerkprogrammierung 6
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
Kjubert Synchronisieren von Objekten über Client/Server - bester Weg? Netzwerkprogrammierung 7
S ImageIcon über Socket schicken (Serialisierung) Netzwerkprogrammierung 6
H Socket Objekte über Socket? Allgemeine Verständnisprobleme in Sachen Socket Netzwerkprogrammierung 3
S Seltsames Verhalten beim Empfangen von Daten über DataInputStream Netzwerkprogrammierung 12
A TCP über UDP Verbindung? Netzwerkprogrammierung 10
C Datei über Socket schreiben und Ereignis lesen Netzwerkprogrammierung 9
D Socket Class über Netzwerk verschicken Netzwerkprogrammierung 2
D JNLP über Webstart funktioniert nicht... Netzwerkprogrammierung 2
J Socket Dateien über Socket auf Server speichern Netzwerkprogrammierung 3
D Socket Datei nur stückweise über Socket verschicken Netzwerkprogrammierung 6
G Bild über Socket schicken - Client/Server Netzwerkprogrammierung 10
A Computer über Internet verbinden Netzwerkprogrammierung 12
N über Java in eine Text-Datei auf einem Server schreiben Netzwerkprogrammierung 2
c_sidi90 ideale Lösung, Screen Capture über Netzwerk Netzwerkprogrammierung 3
S Socket Verschiedene Exceptions beim Übertragen von Bildern über Socket Netzwerkprogrammierung 20
T ArrayList über Netzwerk senden! Netzwerkprogrammierung 5
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
T Verbindungsversuche über TCP Sockets von mehreren Threads führt zu Serverabsturz Netzwerkprogrammierung 2
V Authentifikation über mehrere Server? Netzwerkprogrammierung 3
C Verbindung zu einem Hostrechner über das Internet herstellen Netzwerkprogrammierung 15
M Map über Webservice übertragen Netzwerkprogrammierung 3
D Mehrere Clients über Java-Sockets Netzwerkprogrammierung 13
P Socket Verbindung über das Internet Netzwerkprogrammierung 2
Z Socket Connection reset by peer nur per IP nicht über localhost Netzwerkprogrammierung 13
ruffio1978 Telnet über ein socket ansprechen Netzwerkprogrammierung 8
F Socket Verbindungen über mehrere Server Netzwerkprogrammierung 4
U Datei über das Netzwerk einlesen und speichern Netzwerkprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben