当前位置: 首页 > news >正文

免费主机空间免备案温州做网站优化

免费主机空间免备案,温州做网站优化,东莞网站推广费用,现在有什么新型建筑模板最近一直在做CMS系统#xff0c;发现一些内容其实都是重复出现的#xff0c;例如权限管理模块。权限管理模块就是为了管理用户是否有权利访问某个权限#xff0c;如果不能则拒绝访问。其实Java中已经有很成熟的权限管理框架#xff0c;例如Shiro#xff0c;spring Securit…最近一直在做CMS系统发现一些内容其实都是重复出现的例如权限管理模块。权限管理模块就是为了管理用户是否有权利访问某个权限如果不能则拒绝访问。其实Java中已经有很成熟的权限管理框架例如Shirospring Security等也推荐大家使用。但是一些设计上的东西还是要重复再造过轮子才能发现里面的精髓所以这份代码供不太明白的同学也参考参考。代码分享在 Github 上欢迎大家指出问题 github.com/yixiaoming/…下面我将详细介绍一下这个简单的权限管理模块以便大家可以拿去直接使用。数据表主要三张表t_user用户表访问系统的对象t_permission权限表每条记录就是一个权限也就是一个 url 地址t_group用户组表一个组可以包含多个权限用户如果在这个组中则享有所有权限简单例子来个简单的例子例如一个CMS系统中有一些权限添加文章( /admin/article/add)查看文章( /admin/article/{id})删除文章( /admin/delete/{id})修改文章( /admin/article/update/{id})每个权限其实对应一个controller的 requet 地址。这些内容存放在 t_permission 中。然后系统中有一些用户都放在 t_user中然后我可以为 每个user 分配一些权限一个user叫 张三我可以给他直接添加权限查看文章。那么他只能查看不能增删改。然后用户组表可以看作一个部门例如一个用户组叫文章管理组那么这个组可以添加文章的增删改查4项权限。现在我再将 user分配到 文章管理组 中那么张三就拥有了 文章的增删改查的所有权限。最主要的思想就是用户的权限可以直接分配也可以通过用户组来分配用户的所有权限就是两者的并集框架Spring 4.26Hibernate 5.10Java 8例子采用 SpringMVC hibernate Bootstrap搭建简单实用对于小项目使用绝对没有问题。然后里面也用到了一些开源的Web前端项目例如SB-AdminBootstrapMultiselectMetisMenuBootstrap Validation等由于我本来不是做前端的所以UI上的东西只能借助开源项目来完成。下面展示一下效果登陆页用户列表页用户组列表页权限列表页 都类似用户添加修改页选择权限选择用户组当选定了权限和用户组那么用户的权限就是 权限角色组所有的权限 的并集。登陆成功后将所有权限放在session中LoginController List permissions userService.listUserPermissions(user.getId());List gids userService.listUserGids(user.getId());List groupPermissions groupService.listGroupsPermissions(ListUtil.list2array(gids));for (Permission p : groupPermissions) {if (!permissions.contains(p)) {permissions.add(p);}}request.getSession().setAttribute(Constant.LOGIN_USER, user);request.getSession().setAttribute(Constant.LOGIN_PERMISSIONS, permissions);复制代码然后写两个个拦截器一个判断登录一个判断权限每次访问链接前先判断是否有这个权限如果没有则抛出异常。这里有一点还需要注意如果用户的类型使 Admin 的话那么默认就拥有所有权限所以不需要验证。通过 user 的 isAdmin 字段判断LoginInterceptor public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {User user (User) request.getSession().getAttribute(Constant.LOGIN_USER);if (request.getRequestURL().toString().contains(/admin)) {if (user null) {response.sendRedirect(request.getContextPath() /login);return false;}}return true;}复制代码PermissionInterceptor public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {String url request.getRequestURL().toString();if (url.contains(/admin)) {List permissions (List) request.getSession().getAttribute(Constant.LOGIN_PERMISSIONS);User user (User) request.getSession().getAttribute(Constant.LOGIN_USER);if (permissions null || user null) {response.sendRedirect(request.getContextPath() /login);return false;}// 如果是admin就不需要权限验证if (user.getAdmin()) {return true;}boolean hasPermission false;for (Permission permission : permissions) {if (url.contains(permission.getUrl())) {hasPermission true;break;}}if (!hasPermission) {throw new CmsException(没有权限访问 url);}}return true;}复制代码总结这里洋洋洒洒的写了一些权限模块中的内容只是里面的主线细节的代码大家可以参考Github上的代码地址链接大神略过。希望能给正在学习这个内容的同学一点帮助反正造这个轮子我学到了不少。。。
http://www.zqtcl.cn/news/72562/

相关文章:

  • 深圳做生鲜食材的网站叫什么个人做网站流程
  • 宁波网站推广设计做网站搜索推广点击率太低怎么办
  • 选择好的佛山网站建设竞价
  • a00000网站建设丽丽外贸邦海关数据
  • 自己做的网站被黑了怎么办怎么创造自己的公众号
  • 个人网站支付解决方案WordPress数据消失
  • 多样化的网站建设公司百度指数在线查询工具
  • 网站推广行业赚钱吗库易网网站
  • 郑州网站推广排名成都全网营销推广
  • 网站开发如何让图片加载的更快织梦网站更换域名
  • 渭南网站制作学校做营销推广外包的网站
  • 企业网站 开源php济南口碑最好的装修公司
  • 怎么做素材设计网站网站规划建设
  • 如何建设万网网站转播网站如何做
  • 门户网站建设有哪些界面设计风格合肥网络公司seo建站
  • 廊坊哪里有做网站建设的网络规划设计师考试时间2022
  • 信息聚合网站怎么做北京未来广告公司
  • 网站建设业务知识培训资料网站网页文案怎么写
  • 网页设计作业水晶东营做网站优化价格
  • 网站建设实验网络科技公司项目加盟
  • 盐城网站优化推广工作室双语教学示范课程建设项目网站
  • 树莓派做网站银川网站建设一条龙
  • 三河网站建设-七天网络全国通网站建设
  • 石景山网站建设公司包头正规旅游网站开发哪家好
  • 专业做酒店网站seo模拟点击
  • 网站建设的风险怎么查一个网站是谁做的
  • 网站怎么优化排名的方法discuz网站ip
  • intitle:郑州网站建设wordpress 代码高亮
  • 做电商网站国内搜索引擎大全
  • 广东省建筑工程集团有限公司seo的优化方向