filter2.java

来自「web项目的sso单点登录」· Java 代码 · 共 57 行

JAVA
57
字号
package com.neusoft.apps;

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 javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.neusoft.sso.SsoFilterUtil;

public class Filter2 implements Filter { 
	public void destroy() {
		// TODO Auto-generated method stub

	}

	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub

	}

	public void doFilter(ServletRequest req, ServletResponse res, FilterChain fc) throws IOException, ServletException {
		// TODO Auto-generated method stub
		HttpServletRequest request = (HttpServletRequest)req;
		HttpServletResponse response = (HttpServletResponse)res;
		
		String request_url = request.getRequestURL().toString();
//		String request_url = request.getServletPath() + "?" + request.getQueryString();
		if(request_url.indexOf("login.html") != -1 || request_url.indexOf("Login") != -1){//放过登录页
			fc.doFilter(req, res);
			return;
		}
		
		//检查session
		HttpSession session = request.getSession();
		String userName = (String)session.getAttribute("username");
		if(userName == null || "".equals(userName)){//没登录
			if(SsoFilterUtil.isLogin(request)){//在对方平台已登录
				session.setAttribute("username", request.getParameter("username"));
				fc.doFilter(req, res);
				return;
			}
		}else{
			fc.doFilter(req, res);
			return ;
		}
		response.sendRedirect("login.html");
		return ;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?