package com.buglabs.app.bugdash2; import java.io.IOException; public class WebAdminSettings { public static final String CONFIG_PID_BUGDASH = "BUGDASH"; public static final String CONFIG_KEY_BUGDASH_REQUIRE_LOGIN = "bugdash.setting.boolean.require_login"; public static final String CONFIG_KEY_BUGDASH_USERNAME = "bugdash.credential.string.username"; public static final String CONFIG_KEY_BUGDASH_PASSWORD = "bugdash.credential.secure.password"; public static final String CONFIG_KEY_BUGDASH_AUTHENTICATED = "bugdash.setting.boolean.authenticated"; // don't use this public static final String CONFIG_KEY_BUGDASH_SESSIONS = "bugdash.data.string.active_sessions"; //public static final String CONFIG_KEY_BUGDASH_LAST_ACTION = "bugdash.data.datetime.last_action"; public static final String CONFIG_KEY_BUGNET_LOGIN_KEY = "bugnet.setting.string.current_login_key"; public static final String CONFIG_KEY_BUGNET_USERNAME = "bugnet.credential.string.username"; public static final String CONFIG_KEY_BUGNET_PASSWORD = "bugnet.credential.secure.password"; public static final double INACTIVE_TIMEOUT_DURATION = 1000*60*15; // 15 min public static final String SESSION_COOKIE_NAME = "bugdashSessionId"; public static final String BUGNET_LOGIN_KEY_COOKIE = "bugnetLoginKey"; public static String bugnetLogin, bugnetPwd; public static void addSessionId(String sessionId) { // TODO: given a sessionId, store it in ConfigAdmin in form of session_id0|session_id1|session_id2|... } public static void removeSessionId(String sessionId) { // TODO: given a sessionId, remove it from ConfigAdmin; do clean up here too String sessionBank = getSessionBank(); int index = sessionBank.indexOf(sessionId); int length = sessionBank.length(); String newSessionBank = ""; newSessionBank = sessionBank.substring(0, index); newSessionBank += sessionBank.substring(index + sessionId.length() + 1, length); try { AdminConfigManager.saveConfigProperty(CONFIG_PID_BUGDASH, CONFIG_KEY_BUGDASH_SESSIONS, newSessionBank); } catch (IOException e) { e.printStackTrace(); } } public static boolean containsSessionId(String sessionId) { String sessionBank = getSessionBank(); if(sessionBank.indexOf(sessionId) != -1) { return true; } else { return false; } } private static String getSessionBank() { String sessionBank = ""; try { ConfigPropEntry session_entry = AdminConfigManager.getConfigProperty(CONFIG_PID_BUGDASH, CONFIG_KEY_BUGDASH_SESSIONS); if(session_entry != null) { sessionBank = session_entry.getValue(); } } catch (IOException e) { e.printStackTrace(); } return sessionBank; } public static void populateBugnetLogin(String loginKey) { ConfigPropEntry entry; try { entry = AdminConfigManager.getConfigProperty(CONFIG_PID_BUGDASH, CONFIG_KEY_BUGNET_USERNAME+"."+loginKey); if (entry != null) bugnetLogin = entry.getValue(); entry = AdminConfigManager.getConfigProperty(CONFIG_PID_BUGDASH, CONFIG_KEY_BUGNET_PASSWORD+"."+loginKey); if (entry != null) bugnetPwd = entry.getValue(); AdminConfigManager.saveConfigProperty(CONFIG_PID_BUGDASH, CONFIG_KEY_BUGNET_LOGIN_KEY, loginKey); } catch (IOException e) { e.printStackTrace(); } finally { cleanupBugnetLogin(); } } public static void cleanupBugnetLogin() { // TODO: cleanup unused BUGnet keys (delete all except for one with CONFIG_KEY_BUGNET_LOGIN_KEY) } public static boolean isLoggedIn() { return (bugnetLogin != null && !bugnetLogin.equals("") && bugnetPwd != null && !bugnetPwd.equals("")); } }