Shiro的统一认证受权git
Shiro是Apache下面的一个简单,易用的Java权限框架,对于单体应用来说,Shiro彻底可以极好的,快速的知足权限的需求,因此通常在作项目的时候,Shiro都会成为开发者的首选。github
但是,若是你须要作第二个,第三个,第n个应用,一样须要相同的认证、受权时,可能就须要对Shiro进行必定的扩展或者是集成其它框架,才能很好的知足你的需求了。框架
Shiro是如何进行认证受权maven
Shiro自己并无帮你实现认证、受权,但Shiro很好的定义了权限相关的一些概念,让你完成具体的实现学习
在Shiro里,经过实现Realm来完成上面2件事情,当你时单体应用的时候,很是简单就能完成应用的认证受权。ui
可是当你有多个应用,须要复用同一套用户以及权限信息时该怎么作呢,能够复用Realm,用户权限在同一个db中,这样的话是能够实现的,可是耦合过高,不一样的应用必需要接入同一个数据源才行;或者能够把用户权限相关的DAO剥离出来,做为RPC或Rest调用,也能够实现;可是更好的方式是把认证受权整个剥离出来,单独做为认证受权服务spa
基于Shiro的统一认证受权code
为了实现统一认证受权,Shiro有CasFilter,能够集成CAS,可是CAS又是另一套框架,较为重,有单独的学习成本,因此这里介绍一种更简单,轻量,易用的,基于Shiro的认证受权服务shiro-uaaserver
认证受权流程blog
以下图:
使用
auth-server
resource-server
基本上开箱即用,目前auth-server只是做为jar包提供,须要本身实现登陆逻辑,后续会有可部署服务
shiro-uaa具体的相关说明介绍能够查看项目地址