transactionfilter.java

来自「jdo开发实例,一个功能全面的oa系统」· Java 代码 · 共 85 行

JAVA
85
字号
package com.gzrealmap.oa.db;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

/**
 * <p>Title: RealOA2003a</p>
 * <p>Description: OA二期开发</p>
 * <p>Copyright: Copyright (c) 2002</p>
 * <p>Company: RealMap.cc</p>
 * @author unascribed
 * @version V2003a
 */

public class transactionFilter extends HttpServlet implements Filter {
  private FilterConfig filterConfig;
  //Handle the passed-in FilterConfig
  public void init(FilterConfig filterConfig) {
    this.filterConfig = filterConfig;
  }
  //权限判断
  private boolean opinion(ServletRequest request,String userName){
    boolean pass=false;
    HttpServletRequest req=(HttpServletRequest)request;
    String path=req.getServletPath();

    ///////////////////////////////////////////////////////////
    if(path.endsWith("totrade")||path.endsWith("xsl2del")){
      if(req.getQueryString()!=null){
        path+="?"+req.getQueryString();
      }
    }
    String userID= com.gzrealmap.user.user.User.getInstance().getUserByName(userName).getID();
    System.out.println("---------------path-------------:"+path);
    com.gzrealmap.user.usergroup.UserGroups u=com.gzrealmap.user.usergroup.UserGroups.getFullUserGroups();
    com.gzrealmap.user.transactions.Transactions t=u.getTransactions4(userID);
    if(t!=null){
      com.gzrealmap.user.transactions.Transaction[] transaction=t.getTransaction();
      if(transaction!=null){
        for(int i=0;i<transaction.length;i++){

          if(transaction[i].getURL().equals(path)){
            pass=true;
            return pass;
          }
        }
      }
    }
    return pass;
  }
  //Process the request/response pair
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)  {
    try {
      HttpServletRequest req=(HttpServletRequest)request;
      String userName=req.getRemoteUser();


      System.out.println("下面进行权限判断....用户:"+userName);

        boolean b=opinion(req,userName);
        System.out.println("判断的结果------------------  "+b);
        if(!b){
          HttpServletResponse rep=(HttpServletResponse)response;

          rep.sendRedirect(req.getContextPath()+"/public/transaction.html");
          //  throw new ServletException("对不起,你还没有权限进行这个交易.");
        }else{
          filterChain.doFilter(request, response);

      }

    }
    catch(ServletException sx) {
      filterConfig.getServletContext().log(sx.getMessage());
    }
    catch(IOException iox) {
      filterConfig.getServletContext().log(iox.getMessage());
    }
  }
  //Clean up resources
  public void destroy() {
  }
}

⌨️ 快捷键说明

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