zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    JS---元素属性的操作
    JS---异常
    JS---OOP
    T-SQL---分页语句
    mui---在关闭webview之前给出提示
    mui---通过plus.webview.create创建webview并打开新页面并传参到新页面
    mui---要打开的页面loaded不自动显示,等服务器返回数据后,再做处理逻辑
    winform/timer控件/权限设置/三级联动
    winform 进程、线程
    winform 之MDI容器
  • 原文地址:https://www.cnblogs.com/yangHS/p/11208494.html
Copyright © 2011-2022 走看看