public String oneCookie(String name) { Cookie found = null; List<Cookie> allFound = null; for (Cookie cookie : getCookies()) { if (cookie.name().equals(name)) { if (found == null) { found = cookie; } else if (allFound == null) { allFound = new ArrayList<>(2); allFound.add(found); } else { allFound.add(cookie); } } } if (found == null) { return null; } else if (allFound != null) { StringBuilder s = new StringBuilder("Multiple cookies with name '").append(name).append("': "); int i = 0; for (Cookie cookie : allFound) { s.append(cookie.toString()); if (++i < allFound.size()) { s.append(", "); } } throw new IllegalStateException(s.toString()); } else { return found.value(); } }
private void checkSession(Channel channel) { String cookieString = request.headers().get(HttpHeaderNames.COOKIE); if (cookieString != null) { Set<Cookie> cookies = ServerCookieDecoder.LAX.decode(cookieString); if (!cookies.isEmpty()) { for (Cookie elt : cookies) { if (elt.name().equalsIgnoreCase(R66SESSION + Configuration.configuration.getHOST_ID())) { logger.debug("Found session: " + elt); admin = elt; R66Session session = sessions.get(admin.value()); if (session != null) { authentHttp = session; authentHttp.setStatus(73); } else { admin = null; continue; } } else if (elt.name().equalsIgnoreCase(I18NEXT)) { logger.debug("Found i18next: " + elt); lang = elt.value(); } } } } if (admin == null) { logger.debug("NoSession: " + uriRequest + ":{}", admin); } }
private void handleCookies(HttpResponse response) { String cookieString = request.headers().get(HttpHeaderNames.COOKIE); boolean i18nextFound = false; if (cookieString != null) { Set<Cookie> cookies = ServerCookieDecoder.LAX.decode(cookieString); if (!cookies.isEmpty()) { // Reset the sessions if necessary. boolean findSession = false; for (Cookie cookie : cookies) { if (cookie .name() .equalsIgnoreCase(R66SESSION + Configuration.configuration.getHOST_ID())) { if (newSession) { findSession = false; } else { findSession = true; response .headers() .add(HttpHeaderNames.SET_COOKIE, ServerCookieEncoder.LAX.encode(cookie)); } } else if (cookie.name().equalsIgnoreCase(I18NEXT)) { i18nextFound = true; cookie.setValue(lang); response .headers() .add(HttpHeaderNames.SET_COOKIE, ServerCookieEncoder.LAX.encode(cookie)); } else { response .headers() .add(HttpHeaderNames.SET_COOKIE, ServerCookieEncoder.LAX.encode(cookie)); } } if (!i18nextFound) { Cookie cookie = new DefaultCookie(I18NEXT, lang); response .headers() .add(HttpHeaderNames.SET_COOKIE, ServerCookieEncoder.LAX.encode(cookie)); } newSession = false; if (!findSession) { if (admin != null) { response .headers() .add(HttpHeaderNames.SET_COOKIE, ServerCookieEncoder.LAX.encode(admin)); logger.debug("AddSession: " + uriRequest + ":{}", admin); } } } } else { Cookie cookie = new DefaultCookie(I18NEXT, lang); response.headers().add(HttpHeaderNames.SET_COOKIE, ServerCookieEncoder.LAX.encode(cookie)); if (admin != null) { logger.debug("AddSession: " + uriRequest + ":{}", admin); response.headers().add(HttpHeaderNames.SET_COOKIE, ServerCookieEncoder.LAX.encode(admin)); } } }
private Map<String, List<Cookie>> readCookie(final HttpRequest httpRequest) { final Map<String, List<Cookie>> cookiesDownload = new HashMap<>(); final String cookieString = httpRequest.headers().get(HttpHeaders.Names.COOKIE); if (cookieString != null) { for (Cookie cookie : ServerCookieDecoder.STRICT.decode(cookieString)) { if (cookiesDownload.containsKey(cookie.name())) { cookiesDownload.get(cookie.name()).add(cookie); } else { cookiesDownload.put(cookie.name(), new ArrayList<>(Arrays.asList(cookie))); } } } return cookiesDownload; }
private String getSessionId(FullHttpRequest req) { final Set<Cookie> cookies = NettyHttpRequest.getNettyCookies(req); if (cookies != null) { for (final Cookie c : cookies) { if (c != null && SESSION_COOKIE_KEY.equals(c.name())) return c.value(); } } return null; }
@Override public Collection<Cookie> getRequestCookies() { final List<Cookie> newCookies = new ArrayList<>(); final Set<io.netty.handler.codec.http.cookie.Cookie> cookies = request.getCookies(); for (final io.netty.handler.codec.http.cookie.Cookie cookie : cookies) { final Cookie newCookie = new Cookie(cookie.name(), cookie.value()); newCookie.setDomain(cookie.domain()); newCookie.setPath(cookie.path()); newCookie.setMaxAge((int) cookie.maxAge()); newCookie.setSecure(cookie.isSecure()); newCookie.setHttpOnly(cookie.isHttpOnly()); newCookies.add(newCookie); } return newCookies; }