private static Optional<String> getParameter(HttpServletRequest request, String parameterKey) { Optional<javax.servlet.http.Cookie> cookie = findCookie(AUTHENTICATION_COOKIE_NAME, request); if (!cookie.isPresent()) { return empty(); } Map<String, String> parameters = fromJson(cookie.get().getValue()); if (parameters.isEmpty()) { return empty(); } return Optional.ofNullable(parameters.get(parameterKey)); }
@Override public Optional<String> getReturnTo(HttpServletRequest request) { return getParameter(request, RETURN_TO_PARAMETER); }
@Override public void init(HttpServletRequest request, HttpServletResponse response) { String returnTo = request.getParameter(RETURN_TO_PARAMETER); String allowEmailShift = request.getParameter(ALLOW_EMAIL_SHIFT_PARAMETER); String allowLoginUpdate = request.getParameter(ALLOW_LOGIN_UPDATE_PARAMETER); Map<String, String> parameters = new HashMap<>(); Optional<String> sanitizeRedirectUrl = sanitizeRedirectUrl(returnTo); sanitizeRedirectUrl.ifPresent(s -> parameters.put(RETURN_TO_PARAMETER, s)); if (isNotBlank(allowEmailShift)) { parameters.put(ALLOW_EMAIL_SHIFT_PARAMETER, allowEmailShift); } if (isNotBlank(allowLoginUpdate)) { parameters.put(ALLOW_LOGIN_UPDATE_PARAMETER, allowLoginUpdate); } if (parameters.isEmpty()) { return; } response.addCookie(newCookieBuilder(request) .setName(AUTHENTICATION_COOKIE_NAME) .setValue(toJson(parameters)) .setHttpOnly(true) .setExpiry(FIVE_MINUTES_IN_SECONDS) .build()); }
@Override public void init(HttpServletRequest request, HttpServletResponse response) { String returnTo = request.getParameter(RETURN_TO_PARAMETER); String allowEmailShift = request.getParameter(ALLOW_EMAIL_SHIFT_PARAMETER); String allowLoginUpdate = request.getParameter(ALLOW_LOGIN_UPDATE_PARAMETER); Map<String, String> parameters = new HashMap<>(); if (isNotBlank(returnTo)) { parameters.put(RETURN_TO_PARAMETER, returnTo); } if (isNotBlank(allowEmailShift)) { parameters.put(ALLOW_EMAIL_SHIFT_PARAMETER, allowEmailShift); } if (isNotBlank(allowLoginUpdate)) { parameters.put(ALLOW_LOGIN_UPDATE_PARAMETER, allowLoginUpdate); } if (parameters.isEmpty()) { return; } response.addCookie(newCookieBuilder(request) .setName(AUTHENTICATION_COOKIE_NAME) .setValue(toJson(parameters)) .setHttpOnly(true) .setExpiry(FIVE_MINUTES_IN_SECONDS) .build()); }
@Override public Optional<Boolean> getAllowUpdateLogin(HttpServletRequest request) { Optional<String> parameter = getParameter(request, ALLOW_LOGIN_UPDATE_PARAMETER); return parameter.map(Boolean::parseBoolean); }
private static Optional<String> getParameter(HttpServletRequest request, String parameterKey) { Optional<javax.servlet.http.Cookie> cookie = findCookie(AUTHENTICATION_COOKIE_NAME, request); if (!cookie.isPresent()) { return Optional.empty(); } Map<String, String> parameters = fromJson(cookie.get().getValue()); if (parameters.isEmpty()) { return Optional.empty(); } return Optional.ofNullable(parameters.get(parameterKey)); }
@Override public Optional<Boolean> getAllowEmailShift(HttpServletRequest request) { Optional<String> parameter = getParameter(request, ALLOW_EMAIL_SHIFT_PARAMETER); return parameter.map(Boolean::parseBoolean); }
@Override public Optional<String> getReturnTo(HttpServletRequest request) { return getParameter(request, RETURN_TO_PARAMETER); }
@Override public Optional<Boolean> getAllowEmailShift(HttpServletRequest request) { Optional<String> parameter = getParameter(request, ALLOW_EMAIL_SHIFT_PARAMETER); return parameter.map(Boolean::parseBoolean); }
@Override public Optional<Boolean> getAllowUpdateLogin(HttpServletRequest request) { Optional<String> parameter = getParameter(request, ALLOW_LOGIN_UPDATE_PARAMETER); return parameter.map(Boolean::parseBoolean); }