package mediawiki.request; import mediawiki.MediaWikiConnection; import mediawiki.MediaWikiException; import mediawiki.MediaWikiPostRequest; import mediawiki.MediaWikiRequest; import mediawiki.info.LoginCredentials; import javat.xml.Document; import javat.xml.Element; public class LoginRequest extends MediaWikiRequest<String> { private LoginCredentials l; @Deprecated public LoginRequest(String user, String password){ this(new LoginCredentials(user, password)); } public LoginRequest(LoginCredentials l) { this.l = l; } @Override public String request(MediaWikiConnection c) throws Exception { MediaWikiPostRequest p = new MediaWikiPostRequest(c); p.putData("action", "login"); p.putData("lgname", getUser()); p.putData("lgpassword", getPassword()); Document d = p.requestDocument(); Element answer = d.getRootElement().getChildren("login").get(0); String token = answer.getAttribute("token").getValue(); // c.setWikiname(answer.getAttribute("cookieprefix").getValue()); MediaWikiPostRequest p2 = new MediaWikiPostRequest(c); p2.putData("action", "login"); p2.putData("lgname", getUser()); p2.putData("lgpassword", getPassword()); p2.putData("lgtoken", token); d = p2.requestDocument(); answer = d.getRootElement().getChildren("login").get(0); if(answer.getAttribute("result").getValue().equals("Success")){ c.setLoggedIn(true); return answer.getAttribute("lguserid").getValue(); } throw new MediaWikiException("Login failed."); } public String getUser() { return l.getUsername(); } public String getPassword() { return l.getPassword(); } public void setUser(String user) { l.setUsername(user); } public void setPassword(String password) { l.setPassword(password); } }