博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shrio(Simple,Java,Security)
阅读量:6244 次
发布时间:2019-06-22

本文共 1505 字,大约阅读时间需要 5 分钟。

Shiro(Apache)

shiro框架是一个安全管理框架,主要实现认证与授权功能以及权限的控制.
Apache Shiro是Java的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案
Apache shiro 与Spring security相比,功能并没有Spring security强大,但shiro使用起来简单,也能实现安全管理.
shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等.

Shiro的功能架构图

功能 作用
Authentication 身份认证/登录.验证用户是不是拥有相应的身份
Authroization 授权,即权限验证.验证某个已认证的用户是否拥有某个权限.即判断用户是否能做事情.常用场景:验证某个用户是否拥有某个角色.或者可以细微到某个用户是否可以操作某个资源
SessionManager 会话管理,用户登录后就是一次会话.没有退出之前它的所有信息都会储存在会话中.JavaSE与JavaEE中都可以使用.
Cryptography[krɪp'tɑgrəf] 加密,保护数据的安全性.如密码加密储存到数据库,而不是明文存储.

web Supprot:Web支持,可以非常容易的集成到Web环境.

Shiro的技术架构图

技术 详解
subject(主体) 主体可以看作任何与应用交互的"用户"(各种编程语言)
SecurityManager(安全管理) shiro的心脏.与struts2的核心过滤器的地位一样.所有具体的交互都是通过securityManager进行控制;它管理所有subject,负责进行认证与授权,及会话,缓存的管理.
Authenticator 认证器,负责主体subject的认证.该技术可以进行扩展,可以自定义认证.需要认证策略(Authentication Strategy),什么情况下用户才通过认证.
Authrizer 授权器,或者是访问控制器,用来决定主体是否有权限进行相应的操作.即控制着用户能访问应用中的哪些功能.

Realm:可以有1个或多个Realm,可以认为是安全实体数据源,即用于获取安全实体的;可以是JDBC实现,也可以是LDAP实现,或者内存实现等等;由用户提供;注意:Shiro不知道你的用户/权限存储在哪及以何种格式存储;所以我们一般在应用中都需要实现自己的Realm

SessionManager:如果写过Servlet就应该知道Session的概念,Session呢需要有人去管理它的生命周期,这个组件就是SessionManager;而Shiro并不仅仅可以用在Web环境,也可以用在如普通的JavaSE环境、EJB等环境;所有呢,Shiro就抽象了一个自己的Session来管理主体与应用之间交互的数据;这样的话,比如我们在Web环境用,刚开始是一台Web服务器;接着又上了台EJB服务器;这时想把两台服务器的会话数据放到一个地方,这个时候就可以实现自己的分布式会话(如把数据放到Memcached服务器)

系统与Shiro的交互

当前用户---->SecurityManager--->Realm

如果有什么地方说得不正确,大家可以在评论写下一起交流。希望我的文章对你有帮助。点个赞阿兄dei!

转载于:https://juejin.im/post/5b7248b5f265da28112f67fa

你可能感兴趣的文章
avformat_open_input() always return -13
查看>>
linux 编写防火墙脚本
查看>>
方差分析库 ANOVA C++ (libANOVA)
查看>>
线程,进程和程序的简单比较
查看>>
Resetting warning light on AIX
查看>>
Java 实现文件随机读写-RandomAccessFile
查看>>
hdu2027 统计元音
查看>>
星巴克——最单纯的SNS应用
查看>>
spring配置线程池
查看>>
2016年2月5、6日:调研应用监控系统
查看>>
在eclipse中搭建咖啡兔的Activiti演示工程中的各种坑及其解决方法(kft-activiti-demo-no-maven)...
查看>>
我的友情链接
查看>>
简单易用的headless浏览器
查看>>
weka中使用liblinear
查看>>
获取url后面的参数
查看>>
网络超时检测的三种方法
查看>>
Add Two Numbers
查看>>
为什么你需要U-Mail邮件网关上万能安全锁
查看>>
JSON 官网中文
查看>>
解决ubuntu-supervisor-unix:var-run-supervisor.sock-no-such-file.的方法
查看>>