使用背景:不同角色访问页面权限控制

说到权限实现方案,个人觉得先看前后端实现架构。

举个例子,项目架构如下:

浏览器 -> web服务器 -> 网关 -> 后台服务

方案1,前端控制页面访问权限,后端不做接口权限控制。 -  绕过前台可直接访问接口,前端权限控制存在的安全隐患。

方案2,前端不做页面控制,有后端进行权限控制。- 后端进行权限控制,基本上能避免绕过前台接口调用接口的问题,但是能看到不能访问一些菜单,给用户的体验不太好。

方案3,前后台都做页面权限访问控制。- 前后都做权限控制,这个相对比较完美的方案。

最终采用哪一种需要根据项目实际情况而定,这里根据方案3做一下自己项目过程中的分析总结,请大家共勉。

从策略上来说根据是否需要在网关做统一的接口权限控制分情况:

一、网关统一做url鉴权

优点:网关处进行URL鉴权,代码简洁清晰,不需要在每个业务接口总进行权限适配,代码相对比较简单。

缺点:配置比较繁琐,根据角色找到接口url进行配置。假设每个角色分配对应数据接口的权限模型列表如下:

角色 页面 接口
A 页面A 接口1
B 页面B

接口1

接口2

C 页面C 接口3

网关实现核心思路:

登录是获取用户权限模板URL列表,定义filter过滤器,获取当前请求url,在权限列表中判断访问接口URL路径是否在用户权限列表中,如果在则URL鉴权通过,否则鉴权失败返回鉴权失败信息。

二、不在网关做统一的URL鉴权,而是在接口中做URL鉴权。

前后台权限点定义模型:

项目列表

页签 数据 操作
名称 字符串 名称 字符串 名称 字符串
在途项目 service-som:project:underway 全国 service-som:project:view_all(前端)
service-som:project-info:view(后端)
推进项目 service-som:project:promote(前端)
service-som:project-info:cornerstone_manage(后端)
区域 service-som:project:view_region(前端)
service-som:project-info:view(后端)
项目暂停 service-som:project:pause(前端)
service-som:project-info:suspend(后端)

根据角色进行勾选不同的权限点:

前后端在获取用户权限列表之后:通过判断用户权限是否包括某个权限点,有该权限点则鉴权通过,否则鉴权失败。

Web前端页面访问权限控制总结相关推荐

  1. Vue 前端页面按钮权限控制

    前言 按钮权限控制的功能其实在前面的一篇的页面权限管理也包含有这个功能,但是没有凸显出来,所以现在单独写一篇文章用来记录一下 一.什么是按钮权限控制? 刚刚做完了一个后台管理系统,有用到按钮权限控制, ...

  2. web前端页面性能优化SEO优化

    首先什么叫网站? 网站一般分为前端和后台.我们可以理解成后台是用来实现网站的功能的,比如:实现用户注册,用户能够为文章发表评论等等.而前端应该是属于功能的表现.并且影响用户访问体验的绝大部分来自前端页 ...

  3. Java访问权限控制

    面向对象的核心思想之一就是封装,只把有限的方法和成员公开给别人,这也是迪米特法则的内在要求,是外部调用方对方法体内的实现细节知道得尽可能少. 如何实现封装呢? 需要使用某些关键字来限制外部对类内属性和 ...

  4. C++知识点11——this指针,const成员函数,访问权限控制

    1.this指针 每个类都有this指针,this指针指向this指针指向的是类的对象本身 class A { public:A() {}~A() {}void func() {cout<< ...

  5. android 静态方法 构造方法,android基础-Java篇02:类和对象、构造方法、访问权限控制、重载、this关键字、static关键字...

    一.类和构造方法 (类和对象在百度百科已经有详细的介绍,这里只做简单的描述以及帮助理解:百度百科:类和对象,需要注意的是,百度百科类和对象的举例中都是C++,书写格式不要和Java混淆!) 什么是类? ...

  6. 文件服务器共享文件夹访问权限,5对文件服务器中的共享文件夹进行访问权限控制...

    对文件服务器中的共享文件夹进行访问权限控制 1. 实训目的 在Windows Server 2003环境下设置文件服务器的目的是要对多用户进行资源共享,这其中经常遇到不同用户应该分配不同权限的问题,通 ...

  7. [THINKING IN JAVA]访问权限控制

    6 访问权限控制 6.1 包:库单元 package.import.import *.import static: 修改classpath环境变量可以将自己写的类库添加至环境变量并在任何java程序中 ...

  8. Web前端页面设计流程及注意事项,谨记!

    每天我们打开电脑,看到各种各样的web前端页面.你知道他们是如何制作的吗?为了让页面更具有规范性,让使用者更加方便,在制作页面过程中必须遵循一定的设计流程.在这里就为大家详细介绍一下制作一个Web前端 ...

  9. web前端页面优化——个人见解

    web前端页面优化,我们从JavaScript.css.html这3个方面说下,我的见解,希望大神们能有刚好优化方法,一起探讨. 一.  有关javascript方面 优化见解. 1. 首先举个例子: ...

  10. Web前端页面的浏览器兼容性测试心得(三)总结一些IE8兼容问题的解决方案

    Web前端页面的浏览器兼容性测试心得(三)总结一些IE8兼容问题的解决方案 参考文章: (1)Web前端页面的浏览器兼容性测试心得(三)总结一些IE8兼容问题的解决方案 (2)https://www. ...

最新文章

  1. 2017年第八届蓝桥杯C/C++ A组国赛 —— 第四题:填字母游戏
  2. vue-cli如何创建项目到计算机指定位置(如何自定义选择磁盘?)
  3. python input sys.stdin
  4. linux挂载磁盘没有权限,linux肿么知道哪个盘没有被挂载
  5. Wireshark-002导入导出
  6. JQUERY右侧悬浮返回顶部代码
  7. C语言学习方法(详细,适合初学者学习食用)
  8. word表格跨页断行不起作用
  9. 硬盘坏道数据恢复-硬盘开盘数据恢复-天伟数据恢复
  10. 安全加密与证书签发工具--openssl
  11. 四川省着力打造三位一体服务平台,精准服务保障农民工
  12. XTU OJ 1359 字符频度
  13. 银行卡收单____对账__单边账
  14. 图片不能置于底层怎么办_word图片为什么不能置于底层
  15. 5G商用元年车联网鏖战升级 谁能掌握最后的话语权?
  16. mysql中如何分页查询_MySQL_mysql分页原理和高效率的mysql分页查询语句,以前我在mysql中分页都是用的 l - phpStudy...
  17. vue+springcloud出现跨域问题
  18. 国际物联网展亮相中国苏州 成功促进产业链交流与合作
  19. IBM Cloud Computing Practitioners 2019 (IBM云计算从业者2019)Exam答案
  20. 吉首大学2019年程序设计竞赛(重现赛) J 滑稽树下你和我 (递归)

热门文章

  1. 烤箱做披萨的做法 教你做火腿肠披萨
  2. 【教程】使用腾讯云轻量应用服务器搭建 Guacamole 远程桌面代理服务器,让境外小鸡远程不再卡顿!!
  3. 深入理解计算机系统_3e 第四章家庭作业(部分) CS:APP3e chapter 4 homework
  4. Flink 学习笔记(源码篇)<一> ——Transformation
  5. 【OpenGL】FBO渲染到纹理案例
  6. 基于Python的动漫人物分类识别系统
  7. 两种无密码解锁iPhone锁屏密码的方法
  8. 理论力学---约束及其分类
  9. 通过Python获取拉钩招聘网站的公司详细地址
  10. !!破解灯塔线取点与画线的“难点”