文档章节

Shiro的统一认证授权

xfslove
 xfslove
发布于 08/09 12:05
字数 894
阅读 1072
收藏 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.6K
2
Apache Shiro 使用手册(一)Shiro架构介绍

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

heroShane
2014/02/10
0
0
Apache Shiro 使用手册(一)Shiro架构介绍

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

qq58edeba279279
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
27
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部