package com.buglabs.app.bugdash2.controller.login;
import java.io.IOException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.buglabs.app.bugdash2.AdminConfigManager;
import com.buglabs.app.bugdash2.ConfigPropEntry;
import com.buglabs.app.bugdash2.WebAdminSettings;
import com.buglabs.app.bugdash2.utils.Utils;
import com.buglabs.osgi.sewing.pub.SewingController;
import com.buglabs.osgi.sewing.pub.util.RequestParameters;
import freemarker.template.SimpleHash;
import freemarker.template.TemplateModelRoot;
public class LogoutController extends SewingController {
public static final String REDIR_KEY = "redirect";
public String getTemplateName() {
return "loginRedirect.fml";
}
public TemplateModelRoot get(RequestParameters params,
HttpServletRequest req, HttpServletResponse resp) {
String sessionId = "";
String login = "";
ConfigPropEntry required_login = null;
try {
required_login = AdminConfigManager.getConfigProperty(WebAdminSettings.CONFIG_PID_BUGDASH, WebAdminSettings.CONFIG_KEY_BUGDASH_REQUIRE_LOGIN);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(required_login != null)
{
login = required_login.getValue();
}
if(login.compareTo("false") == 0)
{
SimpleHash root = new SimpleHash();
root.put(REDIR_KEY, "admin");
return root;
} else {
Cookie[] cookies = req.getCookies();
sessionId = Utils.readCookie(cookies, WebAdminSettings.SESSION_COOKIE_NAME);
WebAdminSettings.removeSessionId(sessionId);
//process to delete a cookie
Cookie cookie = new Cookie(WebAdminSettings.SESSION_COOKIE_NAME, "");
cookie.setMaxAge(0);
cookie.setPath("/"); //cookie.setPath("/admin/");
resp.addCookie(cookie);
SimpleHash root = new SimpleHash();
root.put(REDIR_KEY, "login");
return root;
}
}
}