• JavaWeb-权限管理思路分析


    1.使用Filter完成一个简单的权限模型:

    1)需求:

    ①.管理权限

        > 查看某人的权限

        > 修改某人的权限

    ②.对访问进行权限控制:有权限则可以访问,否则提示:没有对应的权限,请返回

    2)实现:

    ②.对访问进行权限控制:

      > 使用Filter进行权限的过滤:检验用户是否有权限,若有,则直接响应目标页面;若没有重定向到403.jsp

    * 403.jsp

      <h4>

        没有对应的权限

        请<a href="">返回</a>

      </h4>

    * 使用Filter如何进行过滤:

      - 获取servletPath,类似于/app/article1.jsp

      - 在用户已经登录(可使用 用户是否登录的过滤器)的情况下,获取用户信息,session.getAttribute("user")

      - 在获取用户所具有的权限的信息:List<Authority>

      - 检验用户是否有请求 servletPath的权限:可以思考除了遍历以外,有没有更好的实现方式

      - 若有权限则:响应

      - 若没有权限:重定向到403.jsp

    * others:

      - 用户若登录,需要把用户信息(User 对象)放入到HttpSession

      - 再检验权限之前,需要判断用户是否已经登录

    ①.管理权限:

      > 封装权限信息:Authority

      Authority{

        //显示到页面上的权限的名字

        private String displayName;

        //权限对应的URL地址:

        private String url;一个权限对应着一个url,例如Article_1 -> /app_4/article1.jsp

      }

      > 封装用户信息:User

      User{
        private String username;

        private List<Autority> authorities;

        //...

       }

      > 创建一个UserDao:

      User get(String username);

      void update(String username,List<Autority>);

      > 页面

      authority-manager.jsp:

        * 有一个text文本框,仅输入username,提交后,使用checkbox显示当前用户所有的权限的信息。

        * 检查request中是否有user信息,若有,则显示

          xxx的权限为:对应的权限的checkbox打上对号,提示,页面上需要通过两层循环的方式来筛选出被选择的权限

      > Servlet

      authority-manager.jsp 提交表单后:获取表单的请求参数:username,在根据username获取User信息,把user放入到request中,转发到authority-manager.jsp。

       authority-manager.jsp 修改权限的表单提交后:获取请求参数:username,authory(多选);调用UserDao的update()方法实现权限的修改;重定向到authority-manager.jsp

  • 相关阅读:
    ntp时间服务器
    locate 命令
    身份验证器
    centos 6 mysql源码安装
    简单上传下载命令lrzsz
    iptables记录日志
    iptables日志探秘
    du 命令
    Codeforces 1097F Alex and a TV Show (莫比乌斯反演)
    线段树教做人系列(1)HDU4967 Handling the Past
  • 原文地址:https://www.cnblogs.com/yangHS/p/11208494.html
Copyright © 2020-2023  润新知