📄 idchecker.java
字号:
package cn.edu.hlju.oa.kygl.util;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import net.sf.jasperreports.j2ee.servlets.ImageServlet;
import net.sf.jasperreports.engine.JasperPrint;
public class IDChecker extends HttpServlet implements Filter {
private FilterConfig filterConfig;
//保存需要检查用户权限的资源
private ArrayList<String> need2Checked;
//Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) throws ServletException {
filterConfig = filterConfig;
need2Checked = new ArrayList<String>();
need2Checked.add("SRSystemCodingAction");
need2Checked.add("SRSystemCodingAdd.jsp");
need2Checked.add("SRSystemCodingManage.jsp");
String rootPath = filterConfig.getServletContext().getRealPath("/");
System.out.println("根路径是:"+rootPath);
}
//Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws
ServletException, IOException {
HttpServletRequest req = (HttpServletRequest)request;
//对于一些无聊的请求不予理睬,对于未能通过权限验证的请求将直接导向错误页面
if( neededCheck(req.getServletPath()) )
if( !checkUserAuthority(request,response) )
redirectToErrPage(request,response);
//通过验证的用户的请求和一些无关的请求可以被通过
filterChain.doFilter(request, response);
}
//判断一下所请求的是否需要验证权限
private boolean neededCheck(String requestedRes){
String temp = requestedRes.substring(requestedRes.lastIndexOf("/")+1);
if( need2Checked.contains(temp)){
System.out.println("要请求的是:"+requestedRes+",这是一个需要验证身份的网址.");
return true;
}
return false;
}
private boolean checkUserAuthority(ServletRequest request, ServletResponse response){
HttpServletRequest req = (HttpServletRequest)request;
HttpSession session = req.getSession();
//验证身份的策略尚未却顶,暂时认为所有请求都可以通过
return true;
}
private void redirectToErrPage(ServletRequest request, ServletResponse response)
throws IOException, ServletException {
RequestDispatcher dispatcher = request.getRequestDispatcher("Err.jsp");
dispatcher.forward(request,response);
}
//Clean up resources
public void destroy() {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -