文档章节

Shiro的统一认证授权

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

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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

移除或自定义 WordPress 仪表盘欢迎面板

第一次登录 WordPress 后台仪表盘页面,默认都会显示 WordPress 的欢迎面板: 如果我们要移除这个面板,在主题的 functions.php 中添加下面的代码即可: 12 //移除 WordPress 仪表盘欢迎面...

james_laughing
12分钟前
0
0
HashMap实现原理及源码分析

HashMap实现原理及源码分析   哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,...

DemonsI
15分钟前
0
0
eggjs学习笔记

快速初始化 生成项目(要求最低的node版本8.x) npm i egg-init -gegg-init egg-example --type=simplecd egg-examplenpm i 启动项目 npm run dev 配置 环境配置会覆盖默认配置 config...

别人说我名字很长
18分钟前
1
0
Winform Timer控件时间间隔

sender as System.Timers.Timer).Interval = 23 * 60 * 60 * 1000.0;//将时间间隔改为23小时,23小时后重新发生timer_Elapsed事件。 //60000:时间间隔1分钟,300000:时间间隔5分钟,600000:...

笑丶笑
19分钟前
0
0
在win10系统下怎样快速切换任务视图

切换窗口:Alt + Tab 任务视图:Win + Tab (松开键盘界面不会消失) 切换任务视图:Win + Ctrl +左/右 创建新的虚拟桌面:Win + Ctrl + D 关闭当前虚拟桌面:Win + Ctrl + F4...

SummerGao
23分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部