jsoup einloggen klappt nicht

Fohnbit

Top Contributor
Hallo!

Ich möchte mich an einer Webseite via jsoup einloggen, aber erhalte immer Error 400.
Wenn ich das einloggen in Chrom anschaue, erhalte ich:
Code:
Request URL: https://company.com/account/login/sTarget/account/sTargetAction/index
Request Method: POST
Status Code: 302
Remote Address: 71.71.214.35:443
Referrer Policy: strict-origin-when-cross-origin
cache-control: no-cache, private
content-length: 0
content-type: text/html; charset=UTF-8
date: Mon, 25 Apr 2022 06:54:12 GMT
location: https://company.com/
server: Apache
set-cookie: session-1=tbe8hd5qo2tf41mo6l79l8d7mh; expires=Mon, 02-May-2022 06:54:13 GMT; Max-Age=604800; path=/; secure; HttpOnly
set-cookie: slt=26629e16-a6b3-4e77-9fd2-c1575f90bc7a.1; expires=Tue, 25-Apr-2023 06:54:13 GMT; Max-Age=31536000; path=/; secure; httponly
set-cookie: nocache=price-1; path=/; secure; httponly
set-cookie: x-cache-context-hash=090ea158954ee6bccdc69bdaf3a53a86216e8489; path=/; secure
vary: User-Agent
x-powered-by: PHP/7.4.28
:authority: company.com
:method: POST
:path: /account/login/sTarget/account/sTargetAction/index
:scheme: https
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
accept-encoding: gzip, deflate, br
accept-language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7
cache-control: max-age=0
content-length: 122
content-type: application/x-www-form-urlencoded
cookie: __csrf_token-1=3Yq16LSlPEvnxRS3fnDFClcPYBU3zc; cookieDeclined=1; session-1=p9jv3sk2mordb5fdk57tf4rj9c
origin: https://company.com
referer: https://company.com/account
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
sec-fetch-dest: document
sec-fetch-mode: navigate
sec-fetch-site: same-origin
sec-fetch-user: ?1
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36

mit den Post Daten:
Code:
sTarget: account
email: user@company.com
password: CGyd@7c4sPqpfP
Submit:
__csrf_token: 3Yq16LSlPEvnxRS3fnDFClcPYBU3zc

In jsoup erhalte ich aber:
Java:
org.jsoup.HttpStatusException: HTTP error fetching URL. Status=400, URL=https://company.com/account/login/sTarget/account/sTargetAction/index
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:760)
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:705)
    at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:295)

        at java.base/java.lang.Thread.run(Thread.java:834)

mein Code:
Java:
try {
            res = Jsoup.connect("https://company.com/account/login/sTarget/account/sTargetAction/index")
                    .data("Submit", "").data("sTarget", "account").data("email", "user@company.com")
                    .data("password", "CGyd@7c4sPqpfP").method(Method.POST).execute();
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }
 

KonradN

Super-Moderator
Mitarbeiter
Wenn Du den Code 400 bekommst, dann schickt dein Client einen Request, der nicht verarbeitet werden kann. Da wir aber keine Informationen haben, wie Du mit den Request genau gebaut hast, können wir da vermutlich nicht mehr zu sagen.
 

Fohnbit

Top Contributor
Hallo Konrad!

Danke ... den Java Code habe ich angehängt. Das wäre nur ein Einzeiler.

Den Ablauf der Webseite habe ich mit Chrom versucht raus zu kopieren.

Was würdest du noch genau benötigen?

An sich muss ich die URL für die Übergabe der Post Parameter finden und die Post Parameter ebenso.

Dachte ich habe das alles im Aufruf der URL drinnen.
 

KonradN

Super-Moderator
Mitarbeiter
Ok, hatte ich das eben übersehen oder wurde es noch editiert? Ist aber erst einmal egal.

Und @LimDul war schneller ... ich habe einen anderen Link, der es zeigen würde:

Neben dem csrf Token fehlt evtl. auch der x-www-form-urlencoded header.
 

Fohnbit

Top Contributor
Danke!

Soweit ich gesehen habe, wird der csrf Token über:
geholt.

Öffne ich die Seite, erhalte ich im response header:
Code:
cache-control: no-cache, private
content-type: text/html; charset=UTF-8
date: Mon, 25 Apr 2022 07:55:16 GMT
server: Apache
set-cookie: x-cache-context-hash=deleted; expires=Sun, 25-Apr-2021 07:55:16 GMT; Max-Age=0; path=/
set-cookie: nocache=deleted; expires=Sun, 25-Apr-2021 07:55:16 GMT; Max-Age=0; path=/; secure; httponly
vary: Accept-Encoding,User-Agent
x-content-encoding-over-network: br
x-csrf-token: qYcKhUQrC3wsW8zsoHmUSsv7PL8Be5
x-powered-by: PHP/7.4.28

Mein neuer Code ist dann so:
Java:
    Response res = null;
        try {

            Connection.Response res1 = Jsoup.connect("https://company.com/csrftoken").method(Method.GET).execute();
            Map<String, String> welcomCookies = res1.cookies();

            String securityTokenKey = "__csrf_token";
            String securityTokenValue = res1.header("x-csrf-token");

            res = Jsoup.connect("https://company.com/account/login/sTarget/account/sTargetAction/index")
                    .header("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8").data("Submit", "").data("sTarget", "account").data("email", "user@company.com")
                 .data("password", "CGyd@7c4sPqpfP").
                    .data(securityTokenKey, securityTokenValue).cookies(welcomCookies).method(Method.POST).execute();
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }

Aber nach wie vor Error 400
 

LimDul

Top Contributor
Was die Sache generell schwierig macht, ist zweierlei:
a) ein 400er Fehler ist erstmal ohne Zugriff auf die Server Logs schwer zu debuggen in dem Sinne, dass du nicht weiß, was exakt fehlt
b) Grundsätzlich sind viele Webanwendungen heutzutage so gebaut, dass man nicht einfach über GET/POST Aufrufe simulieren kann, sondern es möglichst korrekt machen muss. Als Schutz vor Cross Site Scripting, aber auch vor Bots & Co.

Sprich das was du tust, ist etwas was in der Regel aktiv verhindert werden soll.

Dir wird nichts anderes übrig bleiben als die gesamte Netzwerkkommunikation (Auch Javascript Requests etc.) zu monitoren im Browser und dann zu bewerten, was relevant ist. Insbesondere auch zu debuggen - bei deinem neuen Code, hast du denn wirklich ein csrf Token dann bekommen? Hast du da mal rein debugged.

Hinzu kommt, dass der originale Request ja noch mehr Tokens hatte, unter anderem auch eine Session. Die wird vermutlich auch wichtig sein.
 

Fohnbit

Top Contributor
Ja, ich weiß das es für Euch schwer ist, ohne direkt Zugriff.

Aber mit Chrome und dem Network Chart sehe ich an sich alles?
session-1 und slt werden bei der csfr Abfrage mit übergeben ... da muss ich noch suchen
 

Fohnbit

Top Contributor
Ich habe nun bemerkt, wenn ich die POST dann sende, erhalte ich:
__csrf_token=deleted

Bekomme aber einen csrf bei der get Abfrage
 

KonradN

Super-Moderator
Mitarbeiter
Schau Dir wirklich die Requests im Detail an. Dazu dann zur Not auch einen Proxy nutzen, der alles genau anzeigt. Dann kannst Du die Requests 1:1 vergleichen um zu sehen: Was für Unterschiede gibt es? Dann kannst Du deine Requests entsprechend anpassen, so dass eben alles stimmig ist.
(Und viel Spass, wenn sich da dann bei einer neuen Version etwas ändert - dann kommt das erneut auf Dich zu!)

Ansonsten scheint das crsf Token als Coockie mitgegeben zu werden:
cookie: __csrf_token-1=3Yq16LSlPEvnxRS3fnDFClcPYBU3zc; cookieDeclined=1; session-1=p9jv3sk2mordb5fdk57tf4rj9c
Daher ist das wohl nicht per .data(...) zu setzen sondern in den cookie zu packen.

Oder habe ich das jetzt missverstanden? Das ist halt keins meiner Kernthemen so dass ich da wenig praktische Erfahrungen habe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Jsoup: gleiche Session nutzen Java Basics - Anfänger-Themen 0
B Jsoup Java Basics - Anfänger-Themen 1
D JAVAFX WebVIEW zu JSOUP Java Basics - Anfänger-Themen 3
D JSON in JSOUP ELEMENTS Java Basics - Anfänger-Themen 1
D XML von Seite auslesen Jsoup Java Basics - Anfänger-Themen 2
D jsoup get class name mit leerzeichen Java Basics - Anfänger-Themen 7
D jsoup.select findet keine elemente Java Basics - Anfänger-Themen 2
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
M In Router einloggen und PCs im Netzwerk erkennen Java Basics - Anfänger-Themen 18
B Mit Java in Webpage Einloggen und Daten auslesen? Java Basics - Anfänger-Themen 4
X Via Java auf eine Webseite einloggen. Java Basics - Anfänger-Themen 6
G Einloggen überprüfen Java Basics - Anfänger-Themen 10
C Einloggen auch per ENTER Taste (KeyListener Problem) Java Basics - Anfänger-Themen 8
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
Darkherobrine9 Import klappt nicht Java Basics - Anfänger-Themen 7
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
TeacherMrSSimon Schachspiel, Werte in Figur eintragen klappt nicht Java Basics - Anfänger-Themen 23
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
K In andere Zahlensysteme umwandeln, wann klappt immer der Trick mit log? Java Basics - Anfänger-Themen 6
nbergmann Umgebungsvariablen einstellen unter Windows 7 klappt nicht Java Basics - Anfänger-Themen 2
C Erste Schritte Insert Into klappt nicht Java Basics - Anfänger-Themen 6
O Klappt nicht: Ein Panel neu zeichnen Java Basics - Anfänger-Themen 3
L Resourcen laden klappt nicht Java Basics - Anfänger-Themen 2
L Variablen Einheiten umrechen klappt nicht Java Basics - Anfänger-Themen 16
I Schleifendurchlauf ab 2. Durchlauf klappt nicht Java Basics - Anfänger-Themen 10
J Objecte in TreeSet einfügen klappt nicht Java Basics - Anfänger-Themen 5
J Datei auslesen klappt nicht Java Basics - Anfänger-Themen 4
K Methoden Pause drücken klappt nur jedes 2. Mal Java Basics - Anfänger-Themen 6
S UserPref und Java Application klappt immer nicht. Java Basics - Anfänger-Themen 2
P Shape Zeichnen klappt nicht - einlesen der Breite/Höhe schon Java Basics - Anfänger-Themen 1
S clip.loop(Clip.LOOP_CONTINUOUSLY); stoppen klappt nicht! Java Basics - Anfänger-Themen 11
Z Lotto-Programm Wieso klappt das? Java Basics - Anfänger-Themen 8
J Erste Schritte Zweithöchster Wert eines Arrays herausfinden - warum klappt mein Code nicht? Java Basics - Anfänger-Themen 3
D Telefon programmieren klappt nicht. Java Basics - Anfänger-Themen 5
VfL_Freak Tastaturabfrage auf '@' klappt nicht :-( Java Basics - Anfänger-Themen 1
M Image Download klappt nicht mehr Java Basics - Anfänger-Themen 4
B Erste Schritte Vererbung klappt nicht Java Basics - Anfänger-Themen 24
M zufälliges Setzen von Schiffen in while klappt nicht immer Java Basics - Anfänger-Themen 3
S Date parsen klappt nicht richtig Java Basics - Anfänger-Themen 3
K RGB Wert Heller machen (Dunkler machen klappt) Java Basics - Anfänger-Themen 2
K Einlesen einer txt von BufferedReader klappt nicht wie gewünscht Java Basics - Anfänger-Themen 12
D Rekursiv Kombinationen ausgeben klappt nur bei einer Wiederholung Java Basics - Anfänger-Themen 4
H Runden klappt nicht Java Basics - Anfänger-Themen 10
S Dateien/LinkedList/StringBuffer - SOrtierung klappt nicht so ganz Java Basics - Anfänger-Themen 2
K CompareTo zwei mal benutzen klappt nicht. Java Basics - Anfänger-Themen 2
T Sortieren/Suche klappt nicht ganz (String Array) Java Basics - Anfänger-Themen 2
J Erste Schritte Bin ein Programm am schreiben klappt aber nicht und weis nicht warum Java Basics - Anfänger-Themen 20
F Dateien lesen klappt nicht Java Basics - Anfänger-Themen 2
Kenan89 Export klappt nicht Java Basics - Anfänger-Themen 2
K Serialisierung: speichern und auslesen, auslesen klappt nicht Java Basics - Anfänger-Themen 14
M Dividieren bei Grafischem Taschenrechner klappt nicht Java Basics - Anfänger-Themen 2
J Einem String-Array in einer for-Schleife Strings zuweisen - Klappt nicht in einer for-Schleife Java Basics - Anfänger-Themen 5
K Frame öffnen klappt nicht?! Java Basics - Anfänger-Themen 36
C Methoden Negativer Wert klappt nicht Java Basics - Anfänger-Themen 4
M Datei löschen, klappt nicht Java Basics - Anfänger-Themen 3
J Compiler-Fehler Eclipse .jar Export klappt nicht. Java Basics - Anfänger-Themen 17
A Oracle Verbindungsaufbau klappt nicht Java Basics - Anfänger-Themen 7
GianaSisters Erste Schritte Datei umbennen bzw verschieben klappt nicht Java Basics - Anfänger-Themen 6
Z Speichern in eine .txt klappt.. fast Java Basics - Anfänger-Themen 23
T pattern klappt nicht so Java Basics - Anfänger-Themen 6
U Automatenprüfung in Java implementieren — String Vergleich klappt nicht Java Basics - Anfänger-Themen 40
K Klassenumbenennung klappt nicht Java Basics - Anfänger-Themen 11
M Synchronized klappt nicht Java Basics - Anfänger-Themen 11
I .csv-Datei einlesen klappt aber kann nicht in String geschrieben werden!?!?! Java Basics - Anfänger-Themen 11
N Serialization, Laden klappt nicht wenn die Klasse geändert wurde Java Basics - Anfänger-Themen 3
D Jar klappt nicht trotz main Methode Java Basics - Anfänger-Themen 19
M Will Sudokus basteln - klappt net Java Basics - Anfänger-Themen 5
R fireTableDataChanged klappt nicht Java Basics - Anfänger-Themen 7
M methoden aufruf klappt nicht Java Basics - Anfänger-Themen 6
T Override klappt nochmal wie? Java Basics - Anfänger-Themen 3
I 1 Frame und mehrere Panels klappt nicht Java Basics - Anfänger-Themen 4
C SELECT klappt INSERT klappt nicht!!!??? Java Basics - Anfänger-Themen 3
Luk10 Aufrufen klappt nicht! Java Basics - Anfänger-Themen 7
A Quicksort, #Vergleiche zählen klappt nicht Java Basics - Anfänger-Themen 3
raptorrs Schreiben in Properties-File klappt nicht Java Basics - Anfänger-Themen 6
T JComboBox klappt nur ein- bis zweimal auf Java Basics - Anfänger-Themen 30
T Polymorphie:Überschreiben der Methode klappt nicht Java Basics - Anfänger-Themen 4
Gonzalez Eingabe des Benutzers mittels readLine()-Methode. Klappt in meinem Beispiel nicht! Java Basics - Anfänger-Themen 7
C .java in .class klappt nicht Java Basics - Anfänger-Themen 16
J Datenbankverbindung klappt doch nicht? IBM DB2 Java Basics - Anfänger-Themen 2
O JPanel einbinden klappt nicht Java Basics - Anfänger-Themen 5
R Fehlersuche - KeyListener, KeyAdaper - Nichts Klappt! Java Basics - Anfänger-Themen 2
B Strings aus Array einlesen klappt nicht Java Basics - Anfänger-Themen 5
J reverse array, klappt nicht ? Java Basics - Anfänger-Themen 3
L Leider klappt bei mir ein Befehl nicht Java Basics - Anfänger-Themen 4
G Unterverzeichnisse anlegen klappt nicht Java Basics - Anfänger-Themen 4
D Ausgabe klappt nicht Java Basics - Anfänger-Themen 9
1 JList Problem : Synchronisation mit Vector klappt nicht :( Java Basics - Anfänger-Themen 6
G EventHandling klappt nicht Java Basics - Anfänger-Themen 8
G JFreeChart und das Update(was nicht klappt). Java Basics - Anfänger-Themen 3
S Schleife klappt nicht Java Basics - Anfänger-Themen 5
G Vergleich klappt nicht Java Basics - Anfänger-Themen 3
J jar erstellen. Es klappt einfach nicht Java Basics - Anfänger-Themen 14
G JDK Installation klappt auf Vista nicht Java Basics - Anfänger-Themen 4
H import java.io.* klappt nich Java Basics - Anfänger-Themen 12
G Icon einfügen klappt nicht Java Basics - Anfänger-Themen 3
M String in textarea übernehmen klappt nicht Java Basics - Anfänger-Themen 13
M Insert into klappt nicht? Java Basics - Anfänger-Themen 7
V Insert into klappt nicht so ganz Java Basics - Anfänger-Themen 6
M Audioclip wiedergabe klappt nicht Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben