zoukankan      html  css  js  c++  java
  • crm---本项目的权限控制模式

    一:url权限:  最底层的权限控制,,缺点在与没有预判的机制,造成客户体验下降.

                 前提: 为controller中的每一个方法(即资源)定义一个资源(Resource)名称,,该资源名称对应一个权限(Permission),两者为一对一的关系.

          权限的表与表的关联关系分析: 而每一个Permission由分别可以对应多个Role(角色),即Role与Permission为多对多的关系.

                        再进一步,为每一个系统的用户分配多个Role,即Role与User之间为为多对多的关系.

          权限拦截过程分析:在权限拦截的拦截器中,在登录验证之后,在对当前要访问的资源进行验证,如果当前访问的资源不在权限验证列表中,则直接放行不进行验证了.

                   反之,如果当前访问的资源在权限列表中,则需要对当前要访问的资源进行权限验证.首先,获取用户的所有权限,对其进行遍历,并与当前要访问的资源进行

                   比对,如果相等则放行,否则重定向到没有权限的json数据源.

    二:模块按钮权限:  第二级权限控制,增强用户体验.

          权限拦截过程分析:在某些功能按钮上增加预判的功能,在list的jsp页面上使用jtsl的c标签从作用域中获取用户的相关权限信息, 并与当前功能所对应的权限名称比较,如果用户包含当前功能按钮所需的权限,则显示该按钮,否则隐藏该按钮.

    三:系统菜单权限:  第三级权限控制,对不同权限的用户显示不同的系统菜单选项.

          权限拦截过程分析:为每一个需要权限的菜单定义一个权限名称,该名称为定位到该菜单功能页面的方法,即/list资源对应的方法,

                    这样,在用户登录后,遍历所有的菜单选项,查询出需要权限验证的菜单项,以及其对应的全乡名称,然后逐个与用户的权限列表比对,如果包含则ok,如果

                    用户权限列表中不包括该菜单的权限,则将该菜单项对象从当前的菜单项集合中移除,从而在前台页面不再显示,最终达到为不同权限的用户显示不同

                    的系统菜单列表的功能.

      

  • 相关阅读:
    从客户端(&)中检测到有潜在危险的 Request.Path 值。
    对访问修饰关键字public, protected, internal and private的说明
    C#综合揭秘——细说多线程(下)
    iis下配置:php+mysql
    工厂模式(Factory Patter)
    HDU 1040 As Easy As A+B [补]
    HDU 1020 Encoding
    HDU 1076 An Easy Task
    UVA 100 The 3n + 1 problem
    民大OJ 1668 追杀系列第二发
  • 原文地址:https://www.cnblogs.com/tabchanj/p/5723070.html
Copyright © 2011-2022 走看看