zoukankan      html  css  js  c++  java
  • Spring MVC中的 权限拦截定义 以及 权限拦截的研发步骤

     

    权限拦截 (拦截器: 对请求进行区分)

    1 实现的价值(作用)
    用户未登录:访问没用登录的URL,拦截到以后 跳转回登录
    用户未登录:访问登录的URL,直接放行到后续流程处理框架,进行后续的操作
    用户登录: 访问拥有的权限 跳转页面并渲染
    用户登录: 访问没有的权限 跳转到没有权限的错误页面

     

    权限拦截的研发步骤

    1 实现HandlerInterceptor接口 有一个PreHandle方法
    获取Session中用户 在获取Request url
    判定Session 和null 的关系
    为空的情况没有登陆时 跳转到登陆页面
    在大配置中如果访问的是登陆url 不做拦截 使用的是Exclude 属性。
    不为空的情况 登陆后 分情况讨论放行
    访问 hasUrl:放行并渲染
    访问 hasNotURL : 拦截跳转到 NoPermission 页面

    2 用户登陆以后 访问 hasNotURL : 拦截跳转到 NoPermission 页面
    if(hasPrivilegeByurl(url入参)){
    retuen true;
    }

    3 UserInfo中
    Public boolean hasOrivilegeByUrl(url入参){
    // get all Permission from listener‘s area
    List<String>list =null; ---Conver End
    if(!list.contains(url)){
    return true;// 他不能拦截本身默认拥有的权限 ,这些权限并没有显示在DB中进行存储
    }
    //获取到CurrentLoginUserPrivilege集合
    迭代判定 有 :retuen true;
    }

    4 配置监听器 全局的监听器 SerbletContextListener
    在容器启动的时候 去给application 放入系统所有权限

    5 web.xml 中 配置监听器
    配置法则 :spring 的监听器一定配置在第一位。

  • 相关阅读:
    用js获取当前页面的url
    innerHTML 和 innertext 以及 outerHTML
    scrollWidth,clientWidth与offsetWidth的区别
    top、postop、scrolltop、offsetTop、scrollHeight、offsetHeight、clientHeight
    两个文字向上滚动案列
    mysql 经典案例
    学习笔记11
    顺时针打印矩阵
    重建二叉树
    镜像二叉树
  • 原文地址:https://www.cnblogs.com/SFHa/p/10275150.html
Copyright © 2011-2022 走看看