package com.connsec.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.http.HttpServletRequest;
import org.apache.log4j.Logger;
import com.connsec.domain.SignTarget;
import com.connsec.web.WebConstants;
public class WebSignFilter implements Filter {
final static Logger logger = Logger.getLogger(WebSignFilter.class);
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
//HttpServletResponse response = (HttpServletResponse) servletResponse;
String language=request.getParameter("language");
String acceptLanguages=request.getHeader("Accept-Language");
String []browseLanguages=acceptLanguages.split(",");
String browseLanguage=browseLanguages.length>0?browseLanguages[0]:acceptLanguages;
logger.debug("accept Language :"+acceptLanguages);
logger.debug("browse Language :"+browseLanguage);
if(language==null&&request.getSession().getAttribute(WebConstants.LANGUAGE)==null){
request.getSession().setAttribute(WebConstants.LANGUAGE, browseLanguage);
}
if(language!=null){
String latestLanguage=(String)request.getSession().getAttribute(WebConstants.LANGUAGE);
if(!language.equals(latestLanguage)){
request.getSession().setAttribute(WebConstants.LANGUAGE, language);
}
}
logger.debug("current Language :"+request.getSession().getAttribute(WebConstants.LANGUAGE));
SignTarget signTarget=new SignTarget(request);
if(!signTarget.getTarget().equals("")){
SignTarget latestSignTarget=(SignTarget)request.getSession().getAttribute(WebConstants.SINGLE_SIGN_ON_TARGET);
if(latestSignTarget==null||!signTarget.equals(latestSignTarget)){
request.getSession().setAttribute(WebConstants.SINGLE_SIGN_ON_TARGET, signTarget);
logger.debug("signTarget : "+signTarget);
}
}
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
}