问题描述:
统一门户平台中集成图书馆系统和网络教学平台系统后,单点登录采用Iframe内嵌方式,竟然无法直接登录,必须刷新页面后才能登录,而采用URL的方式就可以直接登录
问题分析:
造成这种问题的原因可能是Iframe中session丢失
解决办法:
在filter过滤器里面加了response.setHeader("P3P","CP=CAO PSA OUR"); 问题解决
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.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class TransNameFilter extends HttpServlet
implements Filter
{
private static Log logWriter = LogFactory.getLog(TransNameFilter.class.getName());
public void init(FilterConfig arg0)
throws ServletException
{
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
HttpServletRequest hreq = (HttpServletRequest)request;
String transName = hreq.getParameter("transName");
HttpServletResponse res = (HttpServletResponse)response;
res.setHeader("P3P", "CP=CAO PSA OUR");
if (chain != null)
chain.doFilter(request, response);
}
public void destroy()
{
}
}