• 通过反射实现javaweb项目中权限的刷新


    记录是为了更好的成长!

    1、贴一段实际项目的中的代码

    /**
         * @Methods: permissionreload
         * @Description: 权限重载 
         * @return
         */
        @RequestMapping("/permissionreload")
        public String permissionreload() {
            
            //0、从数据库中查出所有权限,进行对比,如果已经存在,跳过,不在添加
            List<String> resouceList = permissionService.listPermissionUrls();
            
            //1、获取Controller中所有的RequestMapping
            Map<RequestMappingInfo,HandlerMethod> handlerMethods = rmhm.getHandlerMethods();
            
            Collection<HandlerMethod> values = handlerMethods.values();
            for(HandlerMethod method:values) {
                
                //2、遍历所有方法,判断当前方法是否贴有@RequiresPermissions  权限控制标签
                RequiresPermissions anno = method.getMethodAnnotation(RequiresPermissions.class);
                if(anno != null) {
                    
                    //取得权限表达式
                    String resourcesUrl = anno.value()[0];
                    
                    //去除重复
                    if(resouceList.contains(resourcesUrl)) {
                        continue;
                    }
                    
                    //封装对象,添加到数据库表中
                    Permission p = new Permission();
                    p.setUrl(resourcesUrl);
                    //设置权限名称
                    p.setPname(method.getMethodAnnotation(PermissionName.class).value());
                    
                    //保存到数据库
                    permissionService.add(p);
                }    
            }
            return "/login/login";
        }

    以上内容代表个人观点,仅供参考,不喜勿喷。。。

  • 相关阅读:
    csrf漏洞
    WebServer远程部署
    URL跳转与钓鱼
    代码注入
    暴跌之后-如何低位灵活补仓
    操盘策略:在交易之前做好应变准备
    操盘策略:股价异动未必主力所为
    赖在长沙的50个理由
    倒在黎明前:融资客股市震荡中被强*损失850万
    操盘策略:巧用盘中T+0交易
  • 原文地址:https://www.cnblogs.com/newbest/p/10054120.html
Copyright © 2020-2023  润新知