mvc 按鈕許可權控制

來源:互聯網
上載者:User

標籤:

 需要開發一個按鈕許可權的控制,思路:攔截所有按鈕路徑,和使用者擁有的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 "";}

 

mvc 按鈕許可權控制

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.