package at.gv.egiz.simpleSigning.helper; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class SessionHelper { private static final String SESSION_CONTENT = "SESSION_CONTENT"; private static final String SESSION_TYPE = "SESSION_TYPE"; private static final String SESSION_TARGETURL = "SESSION_TARGETURL"; private static final String SESSION_CONNECTOR = "SESSION_CONNECTOR"; private static final String SESSION_EVENTID = "SESSION_EVENTID"; private static final String SESSION_DOCUMENT = "SESSION_DOCUMENT"; private static final String SESSION_RESIZE_DONE = "SESSION_RESIZE_DONE"; private static final String SESSION_LOCALE = "SESSION_LOCALE"; private static final String SESSION_QRCODE_CONTENT = "SESSION_QRCODE_CONTENT"; private static final String SESSION_TYPE_TEXT = "TEXT"; private static final String SESSION_TYPE_PDF = "PDF"; private static final String SESSION_TYPE_BASE64 = "B64"; private static final Logger logger = LoggerFactory .getLogger(SessionHelper.class); public enum Type { TEXT, PDF, B64 } public static void setType(HttpServletRequest request, String value) { if (value != null) { if (value.equals(SESSION_TYPE_PDF)) { request.getSession().setAttribute(SESSION_TYPE, Type.PDF); } else if (value.equals(SESSION_TYPE_BASE64)) { request.getSession().setAttribute(SESSION_TYPE, Type.B64); } else { request.getSession().setAttribute(SESSION_TYPE, Type.TEXT); } } else { request.getSession().setAttribute(SESSION_TYPE, Type.TEXT); } } public static Type getType(HttpServletRequest request) { Object obj = request.getSession().getAttribute(SESSION_TYPE); if (obj != null && obj instanceof Type) { return (Type) obj; } else { return Type.TEXT; } } public static void setQRCodeContent(HttpServletRequest request, String value) { request.getSession().setAttribute(SESSION_QRCODE_CONTENT, value); } public static String getQRCodeContent(HttpServletRequest request) { Object s = request.getSession().getAttribute(SESSION_QRCODE_CONTENT); if (s != null) { return s.toString(); } else { return null; } } public static void setLocale(HttpServletRequest request, String value) { request.getSession().setAttribute(SESSION_LOCALE, value); } public static String getLocale(HttpServletRequest request) { Object s = request.getSession().getAttribute(SESSION_LOCALE); if (s != null) { return s.toString(); } else { return null; } } public static void setContent(HttpServletRequest request, String value) { request.getSession().setAttribute(SESSION_CONTENT, value); } public static String getContent(HttpServletRequest request) { Object s = request.getSession().getAttribute(SESSION_CONTENT); if (s != null) { return s.toString(); } else { return null; } } public static void setConnector(HttpServletRequest request, String value) { request.getSession().setAttribute(SESSION_CONNECTOR, value); } public static String getConnector(HttpServletRequest request) { Object s = request.getSession().getAttribute(SESSION_CONNECTOR); if (s != null) { return s.toString(); } else { return null; } } public static void setEventID(HttpServletRequest request, String value) { request.getSession().setAttribute(SESSION_EVENTID, value); } public static String getEventID(HttpServletRequest request) { Object s = request.getSession().getAttribute(SESSION_EVENTID); if (s != null) { return s.toString(); } else { return null; } } public static void setTargetURL(HttpServletRequest request, String target) { request.getSession().setAttribute(SESSION_TARGETURL, target); } public static String getTargetURL(HttpServletRequest request) { Object s = request.getSession().getAttribute(SESSION_TARGETURL); if (s != null) { return s.toString(); } else { return null; } } public static void setResizeDone(HttpServletRequest request) { request.getSession().setAttribute(SESSION_RESIZE_DONE, Boolean.TRUE); } public static boolean getResizeDone(HttpServletRequest request) { Object s = request.getSession().getAttribute(SESSION_RESIZE_DONE); if (s != null && s instanceof Boolean) { return ((Boolean)s).booleanValue(); } else { return false; } } public static void setDocument(HttpServletRequest request, byte[] doc) { if(doc == null) { logger.info("[" + request.getSession().getId() + "]: setting Document to NULL!!!"); } else { logger.info("[" + request.getSession().getId() + "]: setting Document"); } request.getSession().setAttribute(SESSION_DOCUMENT, doc); } public static byte[] getDocument(HttpServletRequest request) { logger.info("[" + request.getSession().getId() + "]: getting Document"); HttpSession session = request.getSession(false); if (session != null) { Object obj = session.getAttribute(SESSION_DOCUMENT); if (obj != null && obj instanceof byte[]) { logger.info("[" + request.getSession().getId() + "]: getting Document is byte with Size {}", ((byte[]) obj).length); return (byte[]) obj; } } logger.info("[" + request.getSession().getId() + "]: getting Document is null"); return null; } public static void killSession(HttpServletRequest request) { logger.info("Killing Session: " + request.getSession().getId()); request.getSession().invalidate(); } }