package com.za.session.api; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.cku.core.RESTResponse; import com.cku.util.ServletUtils; import com.za.session.auth.Token; import com.za.session.auth.TokenMap; import com.za.session.conf.ServerConfig; import java.io.*; public class SessionServlet extends HttpServlet { /** * */ private static final long serialVersionUID = -8476750121365101467L; @Override public void init(ServletConfig conf) throws ServletException { try { String tomcat_path = System.getProperty("catalina.home"); String config_path = tomcat_path + File.separator + "conf" + File.separator + "com.za.session.properties"; ServerConfig.instance().init(config_path); } catch (Exception e) { throw new ServletException(e); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RESTResponse res; try { Long userId = ServletUtils.getParameterLong(request, "userId"); String loginType = ServletUtils.getParameter(request, "loginType",null); String token = TokenMap.instance().registerToken(userId,loginType); res = new RESTResponse("token", token); } catch (Exception e) { res = new RESTResponse(e); } ServletUtils.writeResponse(response, res); } public void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RESTResponse res = new RESTResponse(); try { String tokenStr = ServletUtils.getParameter(request, "token"); String loginType = ServletUtils.getParameter(request, "loginType",null); Token token = TokenMap.instance().verifyTokenUser(tokenStr,loginType); for (Object o : request.getParameterMap().keySet()) { String key = (String)o; if (!key.equals("token")) { token.put(key, request.getParameter(key)); } } } catch (Exception e) { res = new RESTResponse(e); } ServletUtils.writeResponse(response, res); } public void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RESTResponse res = new RESTResponse(); try { String token = ServletUtils.getParameter(request, "token"); TokenMap.instance().invalidToken(token); } catch (Exception e) { res = new RESTResponse(e); } ServletUtils.writeResponse(response, res); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RESTResponse res; try { String tokenStr = ServletUtils.getParameter(request, "token"); String loginType = ServletUtils.getParameter(request, "loginType",null); Token token = TokenMap.instance().verifyTokenUser(tokenStr,loginType); res = new RESTResponse("token", token); } catch (Exception e) { res = new RESTResponse(e); } ServletUtils.writeResponse(response, res); } }