不同的用户类型可以使用不同的菜功能菜单,通过把菜单的ID和用户做关联,在用户登录后显示其可以使用的菜单。
但是用户可以不通过点击菜单,而是手工输入一个菜单URL来越权使用,这个时候我们的实现是在一个表里 把一个菜单对应的所有URL都做了配置,根据URL去查询菜单ID,然后进行鉴权。请问还有没有其他更好的做法?

解决方案 »

  1.   

    用户登录后,将用户的信息保存在Session中,其他操作,使用过滤器来判断用户权限,如果用户有权限,则跳转到下一页面,如果用户没有权限,跳转到错误页面就好了
      

  2.   

    有很多种方法,我这里给你一个思路:你可以在验证用户登陆后,将其存入一个session对象中,然后用一个过滤器来过滤,如果session为空则将其重定向到登陆页。
      

  3.   

    谢谢。我现在也是在过滤器中处理的,获取用户请求的URL,跟表里配置的信息比对,获取该URL对应的menuid,然后判断该用户是否有权限使用该菜单。
    你们所说的不是这样?
      

  4.   

    真的是回答了=没回答
    用了过滤器 然后怎么样啊 
    这个关键不是过滤器 而是过滤器到url之后 如何比对权限的问题
    我感觉是2张表 
    一张是user表(登陆用户名和密码 ID为主键)另一张是权限表(user的ID和对应ID的能访问的url)
    2张表通过ID关联  过滤器通过从session里拿登陆的ID 然后去对应ID的权限表里看 是否能找到将要访问的url
    如果能就访问 不能就过滤掉 这样就可以防止直接输入url访问受限页面了
    生成页面的时候也可以通过查询这张2张表 来看是否给菜单以链接....
      

  5.   

    sesssion中存放用户和用户的权限,菜单和权限联系在一起,用户在访问的时候,通过拦截器进行验证,如果用户没有这个权限,就返回错误页面
      

  6.   

    学习中,不过用session比较的合理!