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

网站建设市场规模网站主页设计素材

网站建设市场规模,网站主页设计素材,网站推广的常用方法有哪些?,我想网站建设1. 需求描述 最近在梳理springboot前后端分离后的权限管理问题。前段时间#xff0c;已经把shiro的实现和spring security 的实现进行了初步的了解。如果深入细节#xff0c;一个篇幅怕是不够。本文仅对权限管理的一些通用原理进行探讨。 2. 权限分类 在前后端分离之后已经把shiro的实现和spring security 的实现进行了初步的了解。如果深入细节一个篇幅怕是不够。本文仅对权限管理的一些通用原理进行探讨。 2. 权限分类 在前后端分离之后对于权限方面主要存在两方面的权限 1前端页面访问权限 2后台接口访问权限。 下面分别以页面权限和接口权限两个方面展开讨论。 3. 页面权限管理 页面权限管理即前端的不同页面需要不同的页面访问权限比如某一个页面A需要超级管理员才能访问某一个页面B需要管理员才能访问某一个页面C普通注册用户就能访问某一个页面D不需要认证就能访问。从这里我们可以抽象出几个最基本的概念。某一个用户拥有若干角色而某一个角色能够访问若干页面。在数据库层面对应了几张表即 用户表用户角色表角色表角色菜单表菜单表。 那么如何实现呢 在回答这个问题之前可以参考以下几篇文章 1Vue动态加载组件的两类方式import和require 2Vue动态路由的后端实现基于AOP的思路 3Vue动态路由的前端实现 从这几篇文章中不难发现。页面可以通过动态路由的方式来渲染。再结合上权限很自然的想到了解决方案。即某一个用户登录认证成功后一方面会返回一个token作为后续访问的凭证另一方面同时查询数据库返回该用户角色对应的菜单列表。不同的用户拥有不同的菜单列表。 某个用户的菜单列表返回前端后在前端完成渲染从而达到了页面权限管理的作用。当然再细粒度一点也是可以做的即在页面中某一个组件的渲染也采用动态渲染的方式即把该组件对应的渲染权限保存在数据库中用户登录的时候随着user对象一同返回前端完成渲染。不过页面权限和页面内组件权限通常是两个不同层面的解决方案。思想是相通的。如果某个页面限制某个角色才能访问通常该页面也就不对页面内组件再进行角色权限分配了虽然可以实现但明显增加了复杂性。因为如果对页面内组件进行角色权限分配就没有必要再对该页面进行上一层的可访问性动态渲染控制。通常情况下某一个具体的页面权限控制是从该两种方案中二选一的关系。即要么进行该页面的动态渲染某些用户角色可以访问该页面某些用户角色不能够访问该页面。要么对该页面内的组件进行权限控制某些用户角色能够访问该页面内的某些组件某些用户角色不能够访问该页面内的某些组件。 如果只进行了页面权限控制而对后台接口没有进行权限限制。那么如果一个用户登录系统后通过该用户凭证就可以无限制的访问后台接口因为后台接口仅需要完成认证通过模拟的浏览器软件进行接口操作可能会给系统带来很大的安全隐患。 那么就得对后台的接口进行权限控制以下将展开讨论。 4. 接口权限管理 这里的接口权限管理主要指springboot中的后台接口的授权访问权限。那么如何实现呢 某一个用户登录的时候会携带该用户名用户id以及密码或是验证码在后台完成密码比对或是验证码比对确认身份成功后即认证成功后会返回一个token信息作为该用户的一个凭证返回前台前台保存该用户的token信息以后访问接口携带该token进行访问。 在后台该用户登录完成认证后系统会查询数据库获取该用户的角色列表以及该角色列表对应的可访问接口的权限列表。后台把该用户的角色列表以及对应权限列表注入spring容器里面。具体管理角色权限方式可以用shiro当然也可以用spring security。在此基础之上某一个用户登录系统中就会保存该用户的角色列表以及对应的权限列表。 但是后台的接口权限验证方式通常并不是对所有的接口都进行权限验证比如登录就是对所有的用户都可以访问的接口。如果用集合A来表示所有的接口集集合B来表示需要权限才能够访问的接口集。显然集合B 是集合A的 真子集。即在数据库中需要保存一份集合B即 权限表。这里可以做这样一个假定假定 接口 和 权限 存在 1:1的关系事实上他们也是一对一的关系因为这里从定义就可以看出这里研究的就是接口的权限一个接口就有一个接口的权限。 那么在权限表接口权限表中我们就可以把涉及到需要权限才能够访问的接口存在权限表中。 而仅有权限表也是不够的我们还需要角色权限表即某一个用户角色可以访问权限表中的一个子集C。另一个用户角色可以访问权限表中的另一个子集D。 回到刚才的话题某一个用户登录系统中就会保存该用户的角色列表以及对应的权限列表。 那么某一个用户登录认证成功后再次访问其他接口的时候如何判断该接口是需要授权才能够访问呢还是不需要授权就可以访问。 在这里有几种方案可供选择这也是本文探讨的重点。主要有以下两种实现方式 1在某一个接口上标明一个注解表示该接口需要什么角色才能够访问或者该接口需要什么权限才能访问。那么对于登录的用户shiro或者spring security 会帮我们判断该用户是否拥有该角色或是否拥有该权限从而是通过该访问请求还是拒绝该访问请求当然这个工作也可以自己写一个切面去实现。 但是这种方式存在一个缺点就是接口的权限无法一目了然的统一管理。即我们需要去翻阅代码才知道哪个接口上标注了权限注解哪个接口上没有标注权限注解。数据库中的权限表接口权限表中的权限并不一定要全部标注在接口上。可能会有预留的情况。 2另一种方式是接口上不添加注解。系统中保存一份需要权限访问的接口列表从数据库查询。即权限表中保存的是需要权限才能访问的所有接口列表。 从上得知某一个用户登录系统中就会保存该用户的角色列表以及对应的权限列表。即保存了该用户对应的可以访问的接口权限列表。 那么当该登录用户访问其他接口的时候用aop拦截判断该接口是否在需要权限才能访问的接口里面。如果不在则通行如果在再判断该用户有没有该接口的权限。如果没有则抛出没有权限的异常返回。如果有则通行。 3当然在这里还有另一种判断选择。同样接口上不添加注解。但在shiro或是spring security中注入的不是该用户拥有的接口权限而是该用户被拒绝的接口权限。即在该用户登录的时候在后台查询数据库根据该用户拥有的权限接口以及所有需要权限才能访问的接口获取需要权限但该用户没有权限的接口即该用户不能访问的权限接口。 在该用户访问其他接口的时候在aop里面判断该访问的接口是不是在拒绝权限的接口里面如果是则拒绝访问否则则通行。 以上三种方式各有优缺点在此不再展开。后续探讨后再开篇幅进一步探讨权限相关的内容。 5. 结语 java后台开发权限的重要性不言而喻。但参阅相关的博客发现大多数的文章仅说明shiro或是spring security的具体实现。而对其抽象的基本原理没有进行较好的描述本文就是为了从抽象的角度来描述springboot前后端分离后权限的实现原理以及不同的算法选择。 6. 参考资源 1Vue动态加载组件的两类方式import和require 2Vue动态路由的后端实现基于AOP的思路 3Vue动态路由的前端实现
http://www.zqtcl.cn/news/587801/

相关文章:

  • 渝快办官网seo管理平台
  • 网站建设辶金手指排名十二厦门建设局
  • 网站反链接什么seo推广优化多少钱
  • 建设工程公司采购的网站找不到网站后台怎么办
  • 江门网站seo推广湖南省建设银行网站官网
  • 网站底部关键词指向网站打开速度慢跟什么有关系
  • 网站右侧广告合肥高端网站设计
  • 漯河市郾城区网站建设wordpress文件管理
  • 网站栅格大连做网站的
  • 珠海企业网站建设报价鄂州网吧什么时候恢复营业
  • 手机制作钓鱼网站id转换为wordpress
  • 手机网站 好处信用中国 网站有那个部门支持建设
  • 模板免费网站自己如何做网站优化
  • 自适应网站做mip改造淘宝上买衣服的网站
  • 射阳做企业网站哪家好利用新冠消灭老年人
  • 网站头部修改wordpress php幻灯片代码
  • 网络违法犯罪举报网站哪里有制作网站服务
  • 临沂怎么做网站网站 单页
  • 科技信息网站系统建设方案建筑设计专业世界大学排名
  • 做网站运营的简历小型视频网站建设
  • 福建省亿力电力建设有限公司网站网页设计html代码大全动物
  • 如何建网站赚取佣金企业网站的在线推广方法有
  • 嵌入式转行到网站开发免费秒玩小游戏
  • 采购网站排名不需要证件做网站
  • wordpress添加用户登录东莞网络公司seo优化
  • 哪些企业网站使用水墨风格设计免费
  • 河北邯郸做网站的公司哪家好云南建站公司
  • 网站开发如何给用户发邮件wordpress中文插件下载
  • 专业外贸网站建设公司排名网站错误列表
  • 魔站建站系统哪家好扬州网站开发公司电话