package com.intralinks.imgview.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
import com.intralinks.client.Field;
import com.intralinks.client.FieldDefinition;
import com.intralinks.client.Folder;
import com.intralinks.client.Session;
import com.intralinks.config.Config;
import com.intralinks.controllers.Controller_Documents;
import com.intralinks.controllers.Controller_Workspaces;
import com.intralinks.exceptions.ILGenericException;
import com.intralinks.imgview.utils.AllKeys;
import com.intralinks.imgview.utils.Helpers;
import com.intralinks.imgview.utils.Setting;
import com.intralinks.logger.ILLogger;
import com.intralinks.util.CheckKey;
@WebFilter("/servlet/*")
public class InitProperty implements Filter
{
@Override
public void destroy()
{
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
{
HttpServletRequest _request = (HttpServletRequest) request;
HttpServletResponse _response = (HttpServletResponse) response;
JSONObject json = new JSONObject();
String projectName = Config.getValue("appName");
boolean isTrueOrFlase = false;
try
{
isTrueOrFlase = CheckKey.checkKey(projectName, Config.getValue("KeyCode"));
}
catch (Exception e1)
{
ILLogger.logger.error(e1);
}
if (isTrueOrFlase == false)
{
_response.setContentType("application/json");
json.put("state", "403");
json.put("message", "Your License KEY is expired or invalid. ");
_response.getWriter().write(json.toString());
return;
}
final Session session = Helpers.getSession(_request);
if ("/servlet/logon".equalsIgnoreCase(_request.getServletPath()) == false && "/servlet/workspace/enter".equalsIgnoreCase(_request.getServletPath()) == false)
{
if (com.intralinks.util.Helpers.isNullOrEmpty(session.getSsoGlobalSessionId()) == false)
{
// ssoGlobalSession is not empty
Cookie[] cookies = _request.getCookies();
boolean found = false;
for (Cookie c : cookies)
{
if (AllKeys.IsAlive.equals(c.getName())) found = true;
}
if (found == false)
{
_response.setContentType("application/json");
json.put("state", "400");
json.put("message", "Your session is timeout.");
_response.getWriter().write(json.toString());
return;
}
if ("".equals(Setting.IMAGES_FOLDER_ID))
{
ILLogger.logger.debug("Init Setting static key value");
try
{
Folder[] folders = Controller_Workspaces.getRootLevelFolders(Setting.WORKSPACE_ID, session);
if (folders != null)
{
for (Folder f : folders)
{
if ("Images".equalsIgnoreCase(f.getName()))
{
Setting.IMAGES_FOLDER_ID = f.getId();
break;
}
}
}
}
catch (ILGenericException e)
{
}
}
if (Setting.THUMB_FIELD == null)
{
try
{
FieldDefinition[] fds = Controller_Documents.getFieldDefinitions(Setting.WORKSPACE_ID, false, session);
for (FieldDefinition f : fds)
{
if (f.getLabel().equalsIgnoreCase(AllKeys.ISTHUMB))
{
Setting.THUMB_FIELD = new Field(f.getSearchFieldName(), new String[] { "True" });
}
if (f.getLabel().equalsIgnoreCase(AllKeys.REJECTED))
{
Setting.RejectedId = f.getFieldId();
}
}
}
catch (ILGenericException e)
{
ILLogger.logger.error(e);
}
}
Cookie c = new Cookie(AllKeys.IsAlive, "1");
c.setPath(_request.getContextPath() + "/");
c.setMaxAge(31 * 60);
// c.setHttpOnly(true);
_response.addCookie(c);
}
else
{
// session is is empty
Cookie c = new Cookie(AllKeys.IsAlive, "0");
c.setPath(_request.getContextPath() + "/");
c.setMaxAge(0);
// c.setHttpOnly(true);
json.put("state", "400");
json.put("message", "Your session is timeout.");
_response.setContentType("application/json");
_response.getWriter().write(json.toString());
return;
}
}
chain.doFilter(_request, _response);
}
@Override
public void init(FilterConfig config) throws ServletException
{
}
}
转载于:https://my.oschina.net/xlyjx/blog/511198