package com.airlocksoftware.hackernews.data;
import org.apache.commons.lang3.StringUtils;
import org.jsoup.Connection.Method;
import org.jsoup.Connection.Response;
public class LoginManager {
private static final String LOGIN_URL_EXTENSION = "/login?go_to=news";
/**
* Attempts to log the user into http://news.ycombinator.com. If successful, returns a user authentication cookie.
* Else it returns null.
*/
public static String login(String username, String password) {
try {
// Response loginResponse = ConnectionManager.anonConnect(LOGIN_URL_EXTENSION)
// .method(Method.GET)
// .execute();
// Document loginPage = loginResponse.parse();
// String fnid = loginPage.select("input[name=fnid]")
// .attr("value");
Response response = ConnectionManager.anonConnect("/login")
.data("go_to", "news")
.data("acct", username)
.data("pw", password)
.header("Origin", ConnectionManager.BASE_URL)
.followRedirects(true)
.referrer(ConnectionManager.BASE_URL + LOGIN_URL_EXTENSION)
.method(Method.POST)
.execute();
String cookie = response.cookie("user");
if (StringUtils.isNotBlank(cookie)) {
return cookie;
}
} catch (Exception e) {
// connection error
}
return null;
}
}