2017-06-20 3 views
0

Ich versuche, ein sessionid Cookie zu bekommen, das Sie bei der Inspektion einer Webseite würden. Zum Beispiel auf Chrome die Seite der rechten Maustaste> prüfen> Netzwerk> (refresh mit F5)Erhalten Sie einen Cookie von Anfrage header java

Ich versuche, die URLConnection Bibliothek zu verwenden, wie so:

URLConnection connection = new URL("http://website.com/link/to/some_wsdl?wsdl").openConnection(); 

Die Felder in connection sind die folgenden:

Anfrage:

keys: 
0 = "GET /link/to/some_wsdl?wsdl HTTP/1.1" 
1 = "User-Agent" 
2 = "Host" 
3 = "Accept" 
4 = "Connection" 
values: 
1 = "Java/1.8.0_131" 
2 = "iccdev.ejgallo.com" 
3 = "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2" 
4 = "keep-alive" 

Antwort:

keys: 
1 = "Date" 
2 = "Server" 
3 = "X-Powered-By" 
4 = "Keep-Alive" 
5 = "Connection" 
6 = "Transfer-Encoding" 
7 = "Content-Type" 
8 = "Content-Language" 
values: 
0 = "HTTP/1.1 200 OK" 
1 = "Tue, 20 Jun 2017 00:35:53 GMT" 
2 = "Oracle-Application-Server-11g" 
3 = "Servlet/2.5 JSP/2.1" 
4 = "timeout=5, max=100" 
5 = "Keep-Alive" 
6 = "chunked" 
7 = "text/xml; charset=utf-8" 
8 = "en" 

Das Problem ist, dass ich einen Sitzungs-Eintrag fehlt bin, die in den Request-Header mit dem Präfix distsite=SESSIONID=


EDIT sein sollte: Es ist eine Weile her, seit ich diese Frage gestellt, aber ich werde verlassen dies hier sowieso, falls jemand anderes ein ähnliches Problem hat.

Im Wesentlichen war das Cookie, das ich suchte, eines, das intern von unserer benutzerdefinierten Implementierung von LDAP verwendet wird und es wird nur durch die Authentifizierung mit dieser LDAP-Implementierung erstellt. Der Cookie wird für SSO (Single Sign-On) verwendet und würde daher leicht vom Browser über die Standardprotokolle abgerufen werden können. Da ich Java verwendet habe, um es ohne ordnungsgemäße Authentifizierung zu erhalten, würde ich das Cookie in der Antwort von unserem Aufruf an die LDAP-API nicht zurückbekommen.

Antwort

0

Das Cookie wird unter JSESSIONID verkeilt, so abrufen wie diese

String sessionId = connection.getHeaderField("JSESSIONID");

+0

'connection.getHeaderField ("JSESSIONID")' 'kehrt null'. Die oben angegebenen Felder sind die einzigen Felder, die mit dieser Methode zu existieren scheinen. Weißt du, warum es nicht sichtbar ist, wenn ich es nicht mit Inspektionen oder Fiddler betrachte? Muss der Server mit der Sitzungs-ID antworten und sie irgendwie in die Anfrage-Header einspeisen? –

+1

Sie können es nicht auf der Serverseite abrufen, wenn der Client den Cookie-Header nicht sendet, ich nahm an, dass das Server-Backend Java ist. In diesem Fall wird der Cookie-Header unter 'JSESSIONID' (der Name des Header-Felds, das speichert) eingegeben der Cookie-Wert), ersetzen Sie einfach 'connection.getHeaderField (" JSESSIONID ")' mit dem Namen des Header-Feldes, das den Cookie-Wert für Ihre Situation speichert – Dummy

Verwandte Themen