以'权限系统'开篇不晓得会不会遭到鄙视

前言

距离上一篇博客《关于技术人员自身能力提升的一些思考》已经相隔将近一个月,如今才去更新博文,一方面工做上面确实有点忙,另一方面本身也可能真的最近有所松懈。老猫也就不去找说辞了。前端

上次发布博文以后,网友反响其实仍是挺大的,每一个人都有本身的见解。大概是这样的,老猫截取了其中一些网友的留言。
留言1vue

留言1

其实从上面的留言里面能够看到两种意见,第一种,同意学习研究技术,主要目的做为知识储备。一旦用到,从新翻看学习的成本会比较低,即便忘记了。第二种,同意经过实际的开源项目去实践相关的技术,这样才会更加深入。程序员

后来老猫想了想仍是决定综合以上两种意见,首先业余时间作个开源的项目出来,另外的话同时也把里面的相关的技术点也细扣一下,而后分享给你们。web

为何是权限系统?

思来想去不晓得以什么样的开源系统做为切入会比较好,做为一个后端程序员,咱们接触最多的就是咱们的后端系统,固然最基础的话仍是权限系统。固然这是老猫选择权限系统的第一个缘由。spring

基础的权限系统完成以后,其实也能够在此之上拓展一些其余的业务出来,其实老猫也同时在预谋另一个产品,在此先卖个关子,老猫后续会公开,因此欢迎你们持续关注老猫。这是第二个缘由。数据库

将近毕业季,相信不少软件学院的学生党还在苦苦纠结于作个怎样的毕业设计。因此在此,老猫也但愿能给你们一些思路,或者说给一个比较简单而又拓展性比较强的模板,你们能够拿去自行拓展本身的想法,代码总体的学习成本并非很高。这是其三。后端

老猫是后端程序员,对于前端只能说会用,并不精通,更不用说本身去开发出漂亮的前端页面,可是后端系统的vue相关的系统页面有不少现成的开源代码,用来作系统都很是漂亮,能够直接拿来作系统,固然最简单就是权限系统了,这是其四。缓存

这就是以上四点老猫决定总权限系统入手的缘由。安全

决定选择什么样的技术栈?

全部的系统都是从单体架构开始的,因为业务比较简单,因此老猫刚开始的时候先不考虑微服务,后面老猫在进行需求扩展的时候再去作相关的微服务改造。可是老猫此次的权限系统仍是作成先后端分离的模式,主要思路就是shiro+jwt+vue去实现相关的登陆权限功能。cookie

关于企业级的登陆以及权限验证的话市面上有比较成熟的开源框架,通常会有这两个,分别是spring security以及shiro。

聊聊两大安全框架,以及最终选型

聊聊二者的共同功能,二者都具备:

(1)认证功能(2)受权功能(3)加密功能(4)会话管理(5)缓存支持 (6)rememberMe功能。

看看不一样点:

一、Spring Security 基于Spring 开发,依赖spring容器,项目若使用 Spring 做为基础,配合 Spring Security 作权限更加方便。Shiro 依赖性低,不须要任何框架和容器,能够独立运行,因此这就致使 Shiro 须要和 Spring 进行整合开发;

二、Spring Security 功能比 Shiro 更加丰富些(听说控制粒度能够更细),另外的Spring Security对Oauth、OpenID有支持,然而shiro须要手动去实现 ;

三、Spring Security 社区资源相对比 Shiro 更加丰富;Spring Security对Oauth、OpenID也有支持,Shiro则须要本身手动实现。并且Spring Security的权限细粒度更高,spring security 接口 RequestMatcher 用于匹配路径,对路径作特殊的请求,相似于shiro的抽象类 PathMatchingFilter,可是 RequestMatcher 做用粒度更细

四、Shiro 简单,易用,功能也强大,Spring Security 上手复杂些;

五、shiro 不只仅可使用在web中,还支持非web项目它能够工做在任何应用环境中。在集群会话时Shiro最重要的一个好处或许就是它的会话是独立于容器的。

综上,虽然spring security看起来比shrio更增强大,另外还有shiro所不具有的对Oauth、OpenID的支持,可是这些都不是关键。谈到权限的控制粒度,shiro彻底能够经过数据库的查询层面去作掉。关于Oauth以及OpenID支持。因为是web应用,因此现租户与各个产品间单点登陆已经经过cookies实现。另外的最大的缘由的话主要仍是shiro相对而言更加容易上手一些。不得不提一嘴的是 SpringSide网站的权限也是用Shrio作的。

因此结论就很明显了,老猫仍是决定用shiro去作权限认证。

写在最后

勿以善小而不为,复杂的业务系统老是从最简单的系统开始。基础的技术千篇一概,有趣的系统演化凤毛麟角。因此与其死啃干货,不如从系统真实去实战,just do it !,just do it ! 因此接下来开始,但愿你们就和老猫共同开启开源之旅了。在开源中成长,在开源中去结合实际场景学习一些新的知识。flow me!

相关文章
相关标签/搜索