111 lines
3.5 KiB
Java

package xyz.thastertyn.Scrape;
import java.io.IOException;
import java.net.UnknownHostException;
import java.util.concurrent.TimeoutException;
import javax.security.auth.login.CredentialException;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.Connection.Method;
import org.jsoup.nodes.Document;
public class Login {
private String Jsessionid = null;
// Check for session expiration
private long start;
private long lastCheck;
public void loginJecna(String user, String pass) throws UnknownHostException, IOException, CredentialException, TimeoutException
{
//#region JSESSIONID
Connection.Response response = Jsoup.connect("https://www.spsejecna.cz")
.header("Connection", "keep-alive")
.method(Method.HEAD)
.execute();
Jsessionid = response.cookie("JSESSIONID");
Downloader.setJSessionId(Jsessionid);
//#endregion
//#region Token3
String token3 = Downloader.download("https://www.spsejecna.cz/user/role?role=student")
.get()
.select("input[name=token3]")
.attr("value");
//#endregion
//#region Login
Downloader.download("https://www.spsejecna.cz/user/login")
.method(Connection.Method.POST)
.header("Content-Type", "application/x-www-form-urlencoded")
.header("Origin", "https://www.spsejecna.cz")
.data("token3", token3)
.data("user", user)
.data("pass", pass)
.data("submit", "P%C5%99ihl%C3%A1sit+se")
.followRedirects(true)
.execute();
//#endregion
Document test = Downloader.download("https://www.spsejecna.cz/score/student")
.get();
if(test.toString().contains("Pro pokračování se přihlaste do systému"))
{
throw new CredentialException("Incorrect username or password");
}
start = System.currentTimeMillis() / 1000L;
lastCheck = start;
}
/*public void loginJidelna() throws UnknownHostException, IOException
{
//#region JSESSIONID
Connection.Response jidelna = Jsoup.connect("https://objednavky.jidelnasokolska.cz/")
.header("Connection", "keep-alive")
.method(Method.HEAD)
.execute();
String jidelnaJSESSIONID = jidelna.cookie("JSESSIONID");
String XSRF_TOKEN = jidelna.cookie("XSRF-TOKEN");
//#endregion
//#region CSRF
String csrf = Jsoup.connect("https://objednavky.jidelnasokolska.cz/faces/login.jsp")
.header("Connection", "keep-alive")
.cookie("XSRF-TOKEN", XSRF_TOKEN)
.cookie("JSESSIONID", jidelnaJSESSIONID)
.get()
.select("input[name=_csrf]")
.attr("value");
if(!XSRF_TOKEN.equals(csrf))
{
throw new SecurityException("CSRF tokens do not match, something is up");
}
//#endregion
//#region Login
Connection.Response jidelnaLogin = Jsoup.connect("https://objednavky.jidelnasokolska.cz/j_spring_security_check")
.header("Connection", "keep-alive")
.header("Content-Type", "application/x-www-form-urlencoded")
.cookie("XSRF-TOKEN", XSRF_TOKEN)
.cookie("JSESSIONID", jidelnaJSESSIONID)
.data("j_username", Credentials.user)
.data("j_password", Credentials.pass)
.data("terminal", "false")
.data("type", "web")
.data("_csrf", XSRF_TOKEN)
.data("targetUrl", "/faces/secured/main.jsp?terminal=false&status=true&printer=false&keyboard=false")
.method(Method.POST)
.execute();
//#endregion
}*/
}