文档章节

Shiro的统一认证授权

xfslove
 xfslove
发布于 08/09 12:05
字数 894
阅读 1116
收藏 21

Shiro的统一认证授权

Shiro是Apache下面的一个简单,易用的Java权限框架,对于单体应用来讲,Shiro完全能够极好的,快速的满足权限的需求,所以一般在做项目的时候,Shiro都会成为开发者的首选。

可是,如果你需要做第二个,第三个,第n个应用,同样需要相同的认证、授权时,可能就需要对Shiro进行一定的扩展或者是集成其它框架,才能很好的满足你的需求了。

Shiro是如何进行认证授权

Shiro本身并没有帮你实现认证、授权,但Shiro很好的定义了权限相关的一些概念,让你完成具体的实现

在Shiro里,通过实现Realm来完成上面2件事情,当你时单体应用的时候,非常简单就能完成应用的认证授权。

但是当你有多个应用,需要复用同一套用户以及权限信息时该怎么做呢,可以复用Realm,用户权限在同一个db中,这样的话是可以实现的,但是耦合太高,不同的应用必须要接入同一个数据源才行;或者可以把用户权限相关的DAO剥离出来,作为RPC或Rest调用,也可以实现;但是更好的方式是把认证授权整个剥离出来,单独作为认证授权服务

基于Shiro的统一认证授权

为了实现统一认证授权,Shiro有CasFilter,可以集成CAS,但是CAS又是另外一套框架,较为重,有单独的学习成本,所以这里介绍一种更简单,轻量,易用的,基于Shiro的认证授权服务shiro-uaa

认证授权流程

  1. 用户请求受保护资源Resource Server
  2. Resource Server判断用户是否已经登录
  3. 如果没有登录,Resource Server引导用户到UAA Server进行登录
  4. 用户在UAA Server登录,如果登录成功,UAA Server返回code给用户,并引导用户到之前访问的Resource Server
  5. Resource Server用code到UAA Server获取access-token,token包含用户授权信息
  6. Resource Server验证accessToken是否合法,如果合法,在Resource Server保存用户信息

如下图:

map

使用

  • auth-server
    1. 引用maven
    2. 实现自己的登录
  • resource-server
    1. 引用maven
    2. 和shiro一样,使用相关注解进行权限控制

基本上开箱即用,目前auth-server只是作为jar包提供,需要自己实现登录逻辑,后续会有可部署服务

shiro-uaa具体的相关说明介绍可以查看项目地址

© 著作权归作者所有

共有 人打赏支持
xfslove
粉丝 2
博文 1
码字总数 894
作品 0
浦东
私信 提问
加载中

评论(3)

红薯
红薯

引用来自“红薯”的评论

代码放到码云吧,我们推荐一下:)

引用来自“xfslove”的评论

已经把代码托管到[码云](https://gitee.com/xfslove/shiro-uaa),谢谢红薯老大推荐:)
已推荐,包括码云仓库 :)
xfslove
xfslove

引用来自“红薯”的评论

代码放到码云吧,我们推荐一下:)
已经把代码托管到[码云](https://gitee.com/xfslove/shiro-uaa),谢谢红薯老大推荐:)
红薯
红薯
代码放到码云吧,我们推荐一下:)
Shiro系列(3) - What is shiro?

什么是shiro? Shiro是apache的一个开源权限管理的框架,它实现用户身份认证,权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架 使用shiro来实现权限管理,可以非常有效的提高...

风间影月
2017/10/25
0
0
xfslove/shiro-uaa

shiro-uaa A lightweight User Account and Authentication (UAA) Server base on Shiro. 来源 当刚开始一个项目时,相信Shiro的简便会成为大多数开发者权限框架的首选,但当项目扩展后,从1...

xfslove
08/09
0
0
shiro 针对类别不同的用户如何进行认证授权

java web 项目,关于shiro认证,授权。 现在,我的项目中有4类用户,比如学生,老师,导员,管理员,他们的信息不一样。我要用shiro统一去管理它们的认证和授权。这样问题就来了,如何在rea...

change_solider
2014/10/23
2.7K
2
shiro认证授权流程源码分析

源码分析shiro认证授权流程 1. shiro介绍 Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能: 认证 - 用户身份识别,常被称为用户“登录”; 授权 - 访问...

bitree1
2017/06/24
0
0
Apache Shiro 使用手册(一)Shiro架构介绍

一、什么是Shiro Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能: 认证 - 用户身份识别,常被称为用户“登录”; 授权 - 访问控制; 密码加密 - 保护或...

qq58edeba279279
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

初探Spring Cloud(一)

1. 什么是Spring Cloud? Spring提供了一系列工具,可以帮助开发人员迅速搭建分布式系统中的公共组件(比如:配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,...

__HuWei
10分钟前
0
0
Mac配置ssh免密钥登录

Mac终端每次使用ssh -p 22 user@ip登录很是麻烦,下面介绍配置ssh免密钥登录: cd ~/.ssh下创建conf文件,写入以下配置: Host test HostName ip Port 22 IdentityFile /Users/t/key/test.p...

littlemesieV
25分钟前
1
0
Spark2.0操作ES

ES提供了支持包来方便的操作ES。首先添加ES的依赖maven: <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch-spark-20_2.11</artifactId> <version>6.2.0</ver......

守望者之父
27分钟前
1
0
专业术语

1、防御性编程 DruidDataSource类有一个init方法,我们在spring中配置druid时,都会指定 init-method='init'. 而且DruidDataSource也在其他地方,诸如getConnection()方法里作了防御性编程, 也就...

still5656
29分钟前
1
0
微信开发--测试账号相关

1、微信公众平台选择代码开发后,其平台上的部分功能会不可用 可在开发者工具中选择开通测试账号,进行相关的功能调试(测试账号出微信支付不可调试外,其他功能基本上都可以调试) 2、测试账号...

Code辉
35分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部