mvc 按鈕權限控制


 需要開發一個按鈕權限的控制,思路:攔截所有按鈕路徑,和用戶擁有的3級按鈕權限對比,

所有驗證都一個方法解決,只需要修改js后的參數,參數就是按鈕對應的權限碼

如果有什么問題請提醒,謝謝!

xml:

<mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <bean id="buttonInterceptor" class="sls.interceptor.buttonInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors> 

buttonInterceptor:

import java.util.List;
import java.util.logging.Logger;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import sls.system.vo.UserInfoVo;


/**
 * 按鈕權限控制 攔截
 * @author Administrator
 *
 */
public class buttonInterceptor extends HandlerInterceptorAdapter {
    private static final String[] IGNORE_URI = {"/download"};
    private Logger log = Logger.getLogger(this.getClass().getName());
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         boolean flag = false;
         response.reset();
         String url = request.getRequestURL().toString();
         String parameter = request.getParameter("parameter");
         log.info(">>>: " + url);
         boolean ret=false;
         if (url.contains("button") && parameter!=null){
             log.info("訪問路徑包含在button集合中被攔截");
             UserInfoVo userInfoVo =(UserInfoVo) request.getSession().getAttribute("userInfoVo");
             String  authorityButtons =userInfoVo.getAuthorityButton();
             if(authorityButtons!=null){
                 String[] authorityButton =authorityButtons.split(",");
                 for (String string : authorityButton) {
                     //log.info(string);
                     if(string.equals(parameter)){ 
                         log.info("有權限"+parameter);
                         ret= true;
                     }
                }
             }
             if(!ret){ 
                 java.io.PrintWriter out = response.getWriter();
                 out.println(false);
                 out.flush();
                 out.close();
             }
         }else{
             ret =true;
         }
         return ret;
    }    
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        super.postHandle(request, response, handler, modelAndView);
    }
    
    
    
    
    
    
    
    
    
}

 

js:

function downloadProductInfo(){
		$.post("jurisdiction/button.action?parameter=downloadProductInfo",function (e){
			if(e.indexOf("false")!=-1){
				alert("您沒有操作此按鈕的權限")
			}else{
				$("#searchForm").attr("action","basicData/downloadProductInfo.action");
				$("#searchForm").submit();	
			}
		})
	}

controller:

/**
	 * 按鈕權限控制公共方法
	 * @return
	 */
	@RequestMapping("button")
	@ResponseBody 
	public String  button(){
		System.out.println("按鈕權限控制公共方法訪問成功");
		return "";
	}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM