@Authority(controllerName = "admin", pri= "save")
@RequestMapping(value = "/save")
public String save(Model model) {
}public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {

return true;
}我想通过拦截器直接取到请求controller的Method从而取得权限注解@Authority做方法权限处理··请问应该怎么做呢·
按网上说这样试过:ServletHandlerMethodResolver methodResolver = getMethodResolver(handler);
Method handlerMethod = methodResolver.resolveHandlerMethod(request);但没用``
请问下这里应该怎么做呢··谢谢大家

解决方案 »

  1.   

     @Override
        public void doFilter(ServletRequest requestSer, ServletResponse responseSer, FilterChain chain)
                throws IOException, ServletException {
            HttpServletRequest request = (HttpServletRequest) requestSer;
            HttpServletResponse response = (HttpServletResponse) responseSer;
          
            // 设置请求参数
            setParameters(WebUtils.getParametersStartingWith(request, ""));
            // 获取根目录所对应的绝对路径:
            String currentURI = request.getRequestURI();
            log.info("doFilter.currentURI: " + currentURI);
            log.info("request.getContextPath():"+ request.getContextPath()+".");
            // 截取命名空间、action、路径参数
            String targerURI ="";
            if ("".equals(request.getContextPath())) {
                targerURI = currentURI.substring(currentURI.indexOf("/", 0), currentURI.length());
            }else{
                targerURI = currentURI.substring(currentURI.indexOf("/", 1), currentURI.length());
            }
            log.info("doFilter.targerURI: " + targerURI);
            
            if ("/".equals(targerURI)|| (!targerURI.endsWith(".htm"))) {
                chain.doFilter(request, response);
                return;
           }
            
            // 如果属于白名单,直接返回
            if (checkBlank(targerURI)) {
                 chain.doFilter(request, response);
                 return;
            }        HttpSession session = request.getSession();        // 子系统登录
            if (null == session || session.getAttribute(SessionConstants.SESSION_USER) == null) {
                request.getSession().setAttribute(SessionConstants.SESSION_PRE_URL, request.getRequestURL());
                response.sendRedirect(request.getContextPath() + VGS_LOGIN_URL);
                return;
            }
            
            // 从COOKIE中取出B2C登陆信息
            Cookie[] cookies = request.getCookies();
            String memberId = "";
            if (null != cookies) {
                for (Cookie cookie : cookies) {
                    if (cookie.getName().startsWith("WC_USERACTIVITY_")) {
                        memberId = cookie.getName().substring(cookie.getName().lastIndexOf("_") + 1); // 取出B2C登陆的会员ID
                        //log.info("doFilter.memberId: "+memberId); 
                        break;
                    }
                }
            }
    我自己写的