Beste tweakerts,
N.a.v. deze topic [java] HtmlTextInput en HtmlPasswordInput uit HtmlForm is het gelukt om de user/password fields en submit button te identificeren.
Nu het volgende probleem :-), nadat de button click wordt uitgevoerd krijg ik niet de juiste pagina terug, hij doet geen submit. Dit is de code:
Ik heb inmiddels uitgevonden dat er zo'n CSRF achtige code moet worden meegestuurd. Deze extraheer ik met de methode get__RequestVerificationToken en voeg ik als extra additional header mee. Heb met een print op de page.getWebResponse().getWebRequest().getAdditionalHeaders() gechecked dat ze daadwerkelijk zijn toegevoegd. Waarschijnlijk mis ik nog iets, iemand enig idee?
N.a.v. deze topic [java] HtmlTextInput en HtmlPasswordInput uit HtmlForm is het gelukt om de user/password fields en submit button te identificeren.
Nu het volgende probleem :-), nadat de button click wordt uitgevoerd krijg ik niet de juiste pagina terug, hij doet geen submit. Dit is de code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| HtmlPage landing_page = null; webClient = new WebClient(BrowserVersion.CHROME); webClient.getOptions().setJavaScriptEnabled(true); webClient.getOptions().setRedirectEnabled(true); webClient.getOptions().setThrowExceptionOnScriptError(false); webClient.getOptions().setCssEnabled(false); webClient.getOptions().setUseInsecureSSL(true); webClient.getOptions().setThrowExceptionOnFailingStatusCode(false); webClient.getCookieManager().setCookiesEnabled(true); webClient.getCache().setMaxSize(0); final HtmlPage loginpage = webClient.getPage(this.login_url); List<HtmlForm> forms_from_login_page = loginpage.getForms(); HtmlForm form_from_login_page = forms_from_login_page.get(0); String token = get__RequestVerificationToken(loginpage.asXml()); WebRequest web_req = loginpage.getWebResponse().getWebRequest(); web_req.setAdditionalHeader("__RequestVerificationToken", token); HtmlTextInput userNameTextField = loginpage.getHtmlElementById("user-input"); HtmlPasswordInput passwordTextField = loginpage.getHtmlElementById("password-input"); userNameTextField.setValueAttribute(this.profile_id); passwordTextField.setValueAttribute(this.password); DomElement button = loginpage.getElementById("sign-in-btn"); // button.setAttribute("type", "submit"); landing_page = button.click(); |
Ik heb inmiddels uitgevonden dat er zo'n CSRF achtige code moet worden meegestuurd. Deze extraheer ik met de methode get__RequestVerificationToken en voeg ik als extra additional header mee. Heb met een print op de page.getWebResponse().getWebRequest().getAdditionalHeaders() gechecked dat ze daadwerkelijk zijn toegevoegd. Waarschijnlijk mis ik nog iets, iemand enig idee?