当前位置: 首页 > news >正文

判断一个操作是不是允许

一、目的

   简单探索一个URL请求是不是允许的。

 

二、具体过程

 (一)系统的初始化

   系统数据库有账户"admin",密码是"123"。

   账号"admin"的角色是管理员"manager"。

  

   假设管理员身份设定的权限是:

1、对于/user/开头的所有URL操作都是允许的。

 

2、用规则描述如下:

/user/**=manager

 

 权限描述规则:

    URL的表达式=需要的角色名

 

 (二)判断登录

    1、默认"/tologin"和"/login.html"请求路径是匿名的,所有人都可以访问。

    2、假设用户访问其他路径,例如"/user/home?id=22"。

    3、系统会判断当前连接对应的会话域里有没有登录的标志。

  例如:

如果req.getSession().getAttribute("user")是为null值,那么没有登陆,不允许访问,跳转到"/login.html"页面。

 

如果不是null值,需要判断有没有权限。

 

(三)判断权限

    假设已经登录成功。

 

   1、用户访问"/user/home?id=22"请求。

   2、系统判断是登录成功。

   3、系统遍历所有的权限规则,发现请求路径"/user/home"符合规则"/user/**",再查询对应的角色,发现需要"manager"角色身份。

   4、系统从会话中获取当前登录的用户名"admin",去数据库里找该用户对应什么角色。

   5、如果发现admin用户的角色为空,或者不是"manager",返回拒绝访问,结束本次请求。

   6、如果查询账号admin的角色是manager,就调用对应的方法执行对应的请求。

 

最后:如果发现没有找到任何一个匹配的规则,直接返回404找不到资源的响应。

 

 

 

相关文章:

  • 3.23学习总结
  • 运筹优化梳理
  • [M模拟] lc2116. 判断一个括号字符串是否有效(思维+括号匹配问题+问题分析+代码实现)
  • 交换机远程登录
  • 基于Python的智慧金融风控系统的设计与实现
  • 银河麒麟桌面版包管理器(五)
  • 计算机操作系统(五) 前趋图和程序执行与进程的描述(附带图谱表格更好对比理解))
  • MySQL 死锁问题分析与解决方案
  • 机房布局和布线的最佳实践:如何打造高效、安全的机房环境
  • fopen和open 等区别是什么?文件描述符与文件描述指针区别
  • 如何防御大模型中的 Prompt 攻击?
  • 跨境电商独立站B端站与C端站有什么不同
  • stress-ng命令详解
  • 在线文档导出为word/pdf/png
  • 瑞萨RX23E系列开发(二)建立工程
  • 【VUE】day06 动态组件 插槽 自定义指令 ESlint
  • 用 pytorch 从零开始创建大语言模型(五):预训练无标注数据
  • 【网络层协议】NAT技术内网穿透
  • 复变函数摘记2
  • 蓝桥备赛指南(8):01背包模型
  • 一箭六星,朱雀二号改进型遥二运载火箭发射成功
  • 中国纪检监察刊文:力戒形式主义官僚主义关键是要坚持实事求是
  • 从近200件文物文献里,回望光华大学建校百年
  • 在本轮印巴冲突的舆论场上也胜印度一筹,巴基斯坦靠什么?
  • 广西等地旱情缓解,水利部针对甘肃启动干旱防御Ⅳ级响应
  • 夜读丨母亲为燕子打开家门