⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 urlfilter.java

📁 本代码是一个权限管理系统源代码
💻 JAVA
字号:
package com.seavision.PermissionManage.help;

import java.io.IOException;
import java.util.List;
import java.util.Vector;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

import com.seavision.PermissionManage.components.FunctionManage;
import com.seavision.PermissionManage.components.URLManage;
import com.seavision.PermissionManage.vo.UserLoginVO;

public class UrlFilter implements Filter {
	private String[] adminLogin = null;
	private String welcomAdminLogin;
	private String message;

	public void init(FilterConfig filterConfig) throws ServletException {
		welcomAdminLogin = filterConfig.getInitParameter("welcomAdminLogin");
		message = filterConfig.getInitParameter("message");
		if (welcomAdminLogin != null && welcomAdminLogin.trim().length() > 0) {
			adminLogin = welcomAdminLogin.split(",");
		}
	}

	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		String requestUrl = ((HttpServletRequest) request).getRequestURI();
		URLManage urlManage = new URLManage();
		requestUrl = urlManage.url(requestUrl);
		UserLoginVO userLoginVO = new UserLoginVO();
		Vector function = null;
//		Vector allFunction = null;
		List allFunction = null;
//		List list = null;
		String fun = null;
		RequestDispatcher dispatcher = request.getRequestDispatcher(message);
		userLoginVO = (UserLoginVO) ((HttpServletRequest) (request)).getSession().getAttribute("userLoginVO");
		FunctionManage functionManage = DaoFectory.getFunctionManage();
		allFunction = functionManage.getFunctionURL();
		if (userLoginVO != null) {
			function = userLoginVO.getUserFunction();
			for (int i = 0; i < function.size(); i++) {
				fun = (String) function.get(i);
				if (requestUrl.trim().equals(fun)) {
					chain.doFilter(request, response);
					return;
				}
			}			
			for (int i = 0; i < allFunction.size(); i++) {
				fun = (String) allFunction.get(i);
				if (requestUrl.trim().equals(fun)) {
					dispatcher.forward(request, response);
					return;
				}
			}
			chain.doFilter(request, response);
		} else {
			for(int i = 0; i < adminLogin.length; i ++){
				if (requestUrl.equals(adminLogin[i])) {					
					chain.doFilter(request, response);
					return;
				}
			}
			for (int i = 0; i < allFunction.size(); i++) {
				fun = (String) allFunction.get(i);
				if (requestUrl.trim().equals(fun)) {
					dispatcher.forward(request, response);
					return;
				}
			}
			chain.doFilter(request, response);
		}
	}

	public void destroy() {
		// TODO Auto-generated method stub
	}

}

⌨️ 快捷键说明

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