
com.github.gkutiel.flip.web.HttpUtils Maven / Gradle / Ivy
package com.github.gkutiel.flip.web;
import java.io.IOException;
import java.util.logging.Logger;
import javax.servlet.http.Cookie;
import com.github.gkutiel.flip.utils.Utils;
enum HttpUtils {
;
private static final String SEP = ":";
private static final Logger LOGGER = Logger.getLogger(HttpUtils.class.getCanonicalName());
static String get(final Cookie[] cs, final String key) {
if (cs == null) { return null; }
for (final Cookie c : cs) {
if (c.getName().equals(key)) { return c.getValue(); }
}
return null;
}
static Cookie signedCookie(final String key, final Object val) {
final String data = Utils.Json.toString(val);
final String sign = Utils.Cryptography.sign(data);
return new Cookie(key, sign + SEP + data);
}
static T verify(final String val, final Class type) {
try {
final String[] args = val.split(SEP, 2);
if (args.length != 2) { return null; }
final String sign = args[0];
final String data = args[1];
if (!Utils.Cryptography.verify(data, sign)) {
LOGGER.info("INVALID COOKIE: " + val);
return null;
}
return Utils.Json.fromString(data, type);
} catch (final IOException e) {
throw new RuntimeException(e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy