网站的后台有很多的功能,比如,添加,删除,修改等等现在要求添加的管理员,权限相对独立,每个管理员,都只能去干特定的操作,而且还要记录下日志,现在我怎么写这个后台的权限,但是不想去他的源代码中添加各种方法代码什么的我该怎么实现?原系统是struts2+hibernate+spring

解决方案 »

  1.   

    可以试试用filter去控制权限。。
      

  2.   

    我是用攔截器AuthorityInterceptor攔截除了LOGIN/OUT之外的所有ACTION,然後有一個USER_POLICY表放USER可以訪問的ACTION名稱。
    你SSH的架構很容易攔截的
      

  3.   

    创建5张表,分别是:
    用户表
    用户角色中间表
    角色表
    角色权限中间表
    权限表用户与角色,角色与权限是多对多关系。权限表中放置要调用的action名称和方法名,形如xxx!xxxxx;还有功能描述.在用户登录成功后,查询出该用户的所有角色;然后对角色遍历,查出每个角色的所有权限,并把权限(xxx!xxxxx)放到一个List集合中保存上述两个遍历完毕后,将集合List放置到Session中保存。
    然后新建一个拦截器,必须实现MethodFilterInterceptor抽象类。在其中获取用户请求的URI地址,截取该地址最后的形如aaa!bbbb的字符串,判定该字符串是否存在于Session中的List集合中:存在则有权,不存在则提示无权限。
      

  4.   

    建立5张表:
    用户表
    用户角色中间表
    角色表
    角色权限中间表
    权限表(id,method,desc)用户与角色,角色与权限都是多对多关系。
    权限表的method字段放置的是形如xxx!xxxx的action调用地址,desc放置的是该方法的功能描述
    权限表的内容可以在项目完成后,编写一端代码读取XML文档中内容添加进去,
    XML文档中是每个action及其方法功能的描述
    用户登录成功后,级联查询出该用户的所有角色集合,遍历角色集合,查出每一个角色的所有权限集合;
    继续遍历权限集合,查出权限表中的method字段的内容放置到一个List中。上述遍历完毕后,List中存放的就是该用户的所有能访问的action地址,将该List放置到session保存
    最后建立一个拦截器,必须继承MethodFilterInterceptor抽象类实现,
    在拦截器中得到用户访问的URI地址,截取该地址最后的形如xxx!xxxx的action调用地址,
    然后从session取出List集合,判断截取的字符串是否存在于List中:存在则放行,不存在则提示无权访问。
      

  5.   

    建立5张表:
    用户表
    用户角色中间表
    角色表
    角色权限中间表
    权限表(id,method,desc)用户与角色,角色与权限都是多对多关系。
    权限表的method字段放置的是形如xxx!xxxx的action调用地址,desc放置的是该方法的功能描述
    权限表的内容可以在项目完成后,编写一端代码读取XML文档中内容添加进去,
    XML文档中是每个action及其方法功能的描述
    用户登录成功后,级联查询出该用户的所有角色集合,遍历角色集合,查出每一个角色的所有权限集合;
    继续遍历权限集合,查出权限表中的method字段的内容放置到一个List中。上述遍历完毕后,List中存放的就是该用户的所有能访问的action地址,将该List放置到session保存
    最后建立一个拦截器,必须继承MethodFilterInterceptor抽象类实现,
    在拦截器中得到用户访问的URI地址,截取该地址最后的形如xxx!xxxx的action调用地址,
    然后从session取出List集合,判断截取的字符串是否存在于List中:存在则放行,不存在则提示无权访问。
      

  6.   

    AOP  filter  拦截器
      

  7.   

    这不是方法问题  而是设计问题。。你这种对权限控制肯定非常严格,,我不知道你后台是怎样设计的,但是你必须吧你程序和权限分成两部分来做,,然后通过角色控制权限,在页面里有公用的权限JSP 然后每个需要控制的页面都引入你的权限JSP。。你权限的JSP页面读取不同的角色表现出不同的按钮。
      

  8.   

    建立5张表:
    用户表
    用户角色中间表
    角色表
    角色权限中间表
    权限表(id,method,desc)用户与角色,角色与权限都是多对多关系。
    权限表的method字段放置的是形如xxx!xxxx的action调用地址,desc放置的是该方法的功能描述
    权限表的内容可以在项目完成后,编写一端代码读取XML文档中内容添加进去,
    XML文档中是每个action及其方法功能的描述
    用户登录成功后,级联查询出该用户的所有角色集合,遍历角色集合,查出每一个角色的所有权限集合;
    继续遍历权限集合,查出权限表中的method字段的内容放置到一个List中。上述遍历完毕后,List中存放的就是该用户的所有能访问的action地址,将该List放置到session保存
    最后建立一个拦截器,必须继承MethodFilterInterceptor抽象类实现,
    在拦截器中得到用户访问的URI地址,截取该地址最后的形如xxx!xxxx的action调用地址,
    然后从session取出List集合,判断截取的字符串是否存在于List中:存在则放行,不存在则提示无权访问。最后注意,拦截器一定要设置属性,将登录方法、主页内容列表方法排除在外不拦截