Fixing NullPointerException while extracting cookies.
This commit is contained in:
@@ -2,14 +2,13 @@ package com.gempukku.lotro.async;
|
||||
|
||||
import org.jboss.netty.handler.codec.http.Cookie;
|
||||
import org.jboss.netty.handler.codec.http.CookieDecoder;
|
||||
import static org.jboss.netty.handler.codec.http.HttpHeaders.Names.COOKIE;
|
||||
import org.jboss.netty.handler.codec.http.HttpRequest;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.locks.ReadWriteLock;
|
||||
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
||||
|
||||
import static org.jboss.netty.handler.codec.http.HttpHeaders.Names.COOKIE;
|
||||
|
||||
public class LoggedUserHolder {
|
||||
private long _loggedUserExpireLength = 1000 * 60 * 10; // 10 minutes session length
|
||||
private long _expireCheckInterval = 1000 * 60; // check every minute
|
||||
@@ -29,15 +28,18 @@ public class LoggedUserHolder {
|
||||
_readWriteLock.readLock().lock();
|
||||
try {
|
||||
CookieDecoder cookieDecoder = new CookieDecoder();
|
||||
Set<Cookie> cookies = cookieDecoder.decode(request.getHeader(COOKIE));
|
||||
for (Cookie cookie : cookies) {
|
||||
if (cookie.getName().equals("loggedUser")) {
|
||||
String value = cookie.getValue();
|
||||
if (value != null) {
|
||||
String loggedUser = _users.get(value);
|
||||
if (loggedUser != null) {
|
||||
_lastAccess.put(value, System.currentTimeMillis());
|
||||
return loggedUser;
|
||||
String cookieHeader = request.getHeader(COOKIE);
|
||||
if (cookieHeader != null) {
|
||||
Set<Cookie> cookies = cookieDecoder.decode(cookieHeader);
|
||||
for (Cookie cookie : cookies) {
|
||||
if (cookie.getName().equals("loggedUser")) {
|
||||
String value = cookie.getValue();
|
||||
if (value != null) {
|
||||
String loggedUser = _users.get(value);
|
||||
if (loggedUser != null) {
|
||||
_lastAccess.put(value, System.currentTimeMillis());
|
||||
return loggedUser;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -82,7 +84,7 @@ public class LoggedUserHolder {
|
||||
while (true) {
|
||||
_readWriteLock.writeLock().lock();
|
||||
try {
|
||||
long currentTime = System.currentTimeMillis();
|
||||
long currentTime = System.currentTimeMillis();
|
||||
Iterator<Map.Entry<String, Long>> iterator = _lastAccess.entrySet().iterator();
|
||||
if (iterator.hasNext()) {
|
||||
Map.Entry<String, Long> lastAccess = iterator.next();
|
||||
|
||||
@@ -219,19 +219,22 @@ public class GameRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
|
||||
private Set<Phase> getAutoPassPhases(HttpRequest request) {
|
||||
CookieDecoder cookieDecoder = new CookieDecoder();
|
||||
Set<Cookie> cookies = cookieDecoder.decode(request.getHeader(HttpHeaders.Names.COOKIE));
|
||||
for (Cookie cookie : cookies) {
|
||||
if (cookie.getName().equals("autoPassPhases")) {
|
||||
final String[] phases = cookie.getValue().split("0");
|
||||
Set<Phase> result = new HashSet<Phase>();
|
||||
for (String phase : phases)
|
||||
result.add(Phase.valueOf(phase));
|
||||
return result;
|
||||
String cookieHeader = request.getHeader(HttpHeaders.Names.COOKIE);
|
||||
if (cookieHeader != null) {
|
||||
Set<Cookie> cookies = cookieDecoder.decode(cookieHeader);
|
||||
for (Cookie cookie : cookies) {
|
||||
if (cookie.getName().equals("autoPassPhases")) {
|
||||
final String[] phases = cookie.getValue().split("0");
|
||||
Set<Phase> result = new HashSet<Phase>();
|
||||
for (String phase : phases)
|
||||
result.add(Phase.valueOf(phase));
|
||||
return result;
|
||||
}
|
||||
}
|
||||
for (Cookie cookie : cookies) {
|
||||
if (cookie.getName().equals("autoPass") && cookie.getValue().equals("false"))
|
||||
return Collections.emptySet();
|
||||
}
|
||||
}
|
||||
for (Cookie cookie : cookies) {
|
||||
if (cookie.getName().equals("autoPass") && cookie.getValue().equals("false"))
|
||||
return Collections.emptySet();
|
||||
}
|
||||
return _autoPassDefault;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user