forked from j62/ctbrec
1
0
Fork 0

Remove guest session cookies on start for LiveJasmin

This commit is contained in:
0xboobface 2019-01-23 18:27:34 +01:00
parent 44bc5d02aa
commit 0417fd6bfb
2 changed files with 30 additions and 5 deletions

View File

@ -34,7 +34,7 @@ public class CookieJarImpl implements CookieJar {
String name = oldCookie.name(); String name = oldCookie.name();
for (Cookie newCookie : cookies) { for (Cookie newCookie : cookies) {
if(newCookie.name().equalsIgnoreCase(name)) { if(newCookie.name().equalsIgnoreCase(name)) {
LOG.debug("Replacing cookie {} {} -> {} [{}]", oldCookie.name(), oldCookie.value(), newCookie.value(), oldCookie.domain()); LOG.trace("Replacing cookie {} {} -> {} [{}]", oldCookie.name(), oldCookie.value(), newCookie.value(), oldCookie.domain());
iterator.remove(); iterator.remove();
break; break;
} }
@ -42,11 +42,11 @@ public class CookieJarImpl implements CookieJar {
} }
cookiesForUrl.addAll(cookies); cookiesForUrl.addAll(cookies);
cookieStore.put(host, cookiesForUrl); cookieStore.put(host, cookiesForUrl);
LOG.debug("Adding cookie: {} for {}", cookiesForUrl, host); LOG.trace("Adding cookie: {} for {}", cookiesForUrl, host);
} }
else { else {
cookieStore.put(host, cookies); cookieStore.put(host, cookies);
LOG.debug("Storing cookie: {} for {}", cookies, host); LOG.trace("Storing cookie: {} for {}", cookies, host);
} }
} }
@ -54,9 +54,9 @@ public class CookieJarImpl implements CookieJar {
public List<Cookie> loadForRequest(HttpUrl url) { public List<Cookie> loadForRequest(HttpUrl url) {
String host = getDomain(url); String host = getDomain(url);
List<Cookie> cookies = cookieStore.get(host); List<Cookie> cookies = cookieStore.get(host);
LOG.debug("Cookies for {}", url); LOG.trace("Cookies for {}", url);
Optional.ofNullable(cookies).ifPresent(cookiez -> cookiez.forEach(c -> { Optional.ofNullable(cookies).ifPresent(cookiez -> cookiez.forEach(c -> {
LOG.debug(" {} expires on:{}", c, c.expiresAt()); LOG.trace(" {} expires on:{}", c, c.expiresAt());
})); }));
//LOG.debug("Cookies for {}: {}", url.host(), cookies); //LOG.debug("Cookies for {}: {}", url.host(), cookies);
return cookies != null ? cookies : new ArrayList<Cookie>(); return cookies != null ? cookies : new ArrayList<Cookie>();
@ -72,6 +72,19 @@ public class CookieJarImpl implements CookieJar {
throw new NoSuchElementException("No cookie named " + name + " for " + url.host() + " available"); throw new NoSuchElementException("No cookie named " + name + " for " + url.host() + " available");
} }
public void deleteCookie(HttpUrl url, String name) {
List<Cookie> cookies = loadForRequest(url);
for (Iterator<Cookie> iterator = cookies.iterator(); iterator.hasNext();) {
Cookie cookie = iterator.next();
if(Objects.equals(cookie.name(), name)) {
iterator.remove();
LOG.debug("Removed cookie \"{}\" for {}", name, url.toString());
return;
}
}
throw new NoSuchElementException("No cookie named " + name + " for " + url.host() + " available");
}
private String getDomain(HttpUrl url) { private String getDomain(HttpUrl url) {
// String host = url.host(); // String host = url.host();
// if (host.startsWith("www.")) { // if (host.startsWith("www.")) {

View File

@ -20,6 +20,18 @@ public class LiveJasminHttpClient extends HttpClient {
protected LiveJasminHttpClient() { protected LiveJasminHttpClient() {
super("livejasmin"); super("livejasmin");
// delete session, if we are guests, because old guest sessions cause
// endless redirects
if(Config.getInstance().getSettings().livejasminUsername.isEmpty()) {
HttpUrl url = HttpUrl.parse("https://" + LiveJasmin.baseDomain);
try {
getCookieJar().deleteCookie(url, "session");
} catch (NoSuchElementException e) {
LOG.debug("Session cookie not found -> let's go!");
// fine, no session cookie means we are good to go
}
}
} }
@Override @Override