From 9ccdb36019e1ca981308c4456963c9ef75d82f56 Mon Sep 17 00:00:00 2001 From: Nikita Date: Tue, 15 May 2018 14:01:58 +0300 Subject: [PATCH] Fixed - sessionId also should be read from io header #505 #526 --- .../socketio/handler/AuthorizeHandler.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/com/corundumstudio/socketio/handler/AuthorizeHandler.java b/src/main/java/com/corundumstudio/socketio/handler/AuthorizeHandler.java index 3caeca9..b918595 100644 --- a/src/main/java/com/corundumstudio/socketio/handler/AuthorizeHandler.java +++ b/src/main/java/com/corundumstudio/socketio/handler/AuthorizeHandler.java @@ -213,6 +213,15 @@ public class AuthorizeHandler extends ChannelInboundHandlerAdapter implements Di random uuid to be generated instead (same as not passing a cookie in the first place). */ private UUID generateOrGetSessionIdFromRequest(HttpHeaders headers) { + List values = headers.getAll("io"); + if (values.size() == 1) { + try { + return UUID.fromString(values.get(0)); + } catch ( IllegalArgumentException iaex ) { + log.warn("Malformed UUID received for session! io=" + values.get(0)); + } + } + for (String cookieHeader: headers.getAll(HttpHeaderNames.COOKIE)) { Set cookies = ServerCookieDecoder.LAX.decode(cookieHeader); @@ -226,6 +235,7 @@ public class AuthorizeHandler extends ChannelInboundHandlerAdapter implements Di } } } + return UUID.randomUUID(); }