权限项目总结(二)shiro 基础

学习大部分知识的时候,都会有这样出现这样的几个问题。这是什么?如何使用?使用的意义所在?再泛化到主题shiro,有这样几个疑惑。什么是shiro?为什么要使用shiro

 

shiro


ApacheShiro一个功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。

相比springsecurity,功能上shiro相对较少;使用上相对简单;适用面上,shiro覆盖了小到移动端的应用,大到企业级开发中的web应用及相关程序。而spring security仅仅能为j2ee的开发提供服务。功能少所以使用上相对简单,适用面上更加宽泛。

 

shiro到底能做什么呢?,在shiro的官方首页中标明了如下几个模块。


 

 

计算机生成了可选文字:AUth6ntiCationSupport!oginsacrossoneormorepluggabledataSouCres(LDAP.JDBC,ActiveDirectory…Readl诵ore>>>AUthOFIZationPertorm日CCeSSControlb8Sedonrolesor行negrainedpermissions,alsousingplug…ReadMore>>>CryptographySecuredatawiththeeaslestpossibleCryptographyAPI'5available,gMngyou…ReadMoreWebIntegrationSavedevelopmenttimewithinnovativeapproachesthateasilyhandlewebspeci行c一尺eadMore》》》SessionManagementUsesessionsinanyen训ronment,evenoutsideweborEJBcontainers.Easily…ReadMore>>》IntegrationsAPI'591训ngyoupowerandsimpliCtybeyondwhatjavapro训desbydefault>>>ReadMore>>>


 

 

Authentication(认证):用来验证用户到底是谁,为此用户需要提供某种某种获取系统识别和信任形式的身份证明这样的一个过程称之为认证。

 

Authorization(授权):也叫访问控制。确定应用程序是否有对资源的访问权限,换句话说就是谁有权访问。shiro尽可能的在这样一个过程中去减少复杂性,更加简洁的操作达到授权的目的。

 

Cryptograpthy(加密):即通过隐藏信息或将信息转换为不可读的状态。

shiro在加密主要侧重两种方式,1.公钥、私钥的方式2.消息摘要方式

 

SessionManagement(会话管理):先介绍什么是sessionsession就是用户登录到应用系统到loginout之前,这样一个时期称之为sessionSessionManagement呢?就是shiro提供了很多丰富的功能来提供给开发者更好的存储、共享信息或异构客户端访问等。在shiro的官方介绍中,会话管理是适用于普遍开发环境的。


 

核心架构

 


计算机生成了可选文字:O巨翌」·“pe『m'"ed''’卜as日。‘e'又2丈令SecurityManager3)Authorizer汹置瞥{酒.


 

图中描述了某个“用户”在访问系统之后,shiro处理这样的一个过程。

 

subject:当前访问应用系统的user,这里user泛指访问应用系统的的用户、程序等。

 

Security Manager:用来协调shiro内部组件针对user的服务,管理所有的组件。可以联想到pattern model中的façade pattern

 

realm:通俗理解为数据源。即通过realm来获取当前session中的userdatasource中的权限信息。如:角色、权限资源等。

可以有多种实现方式,如jdbc方式。通常会根据开发环境的不同在自定义开发者所需的realm

 可以发现shiro并不会去管理权限,而是通过开发者提供的数据注入到shirorealm中来提供权限服务。



 

如图所示


        

 

 所以总结shiro一般处理流程一般情况分为以下步骤


1.应用“user”,即subject来访问应用系统,经过认证处理。通过即进入授权。

此时subject来调用securityManager

2.security Manager调用内部realm得到权限数据

3.验证“user”和realm得到的数据,决定是否授权等操作。授权则user可以访问被shiro保护的资源。


参考资料:

http://jinnianshilongnian.iteye.com/blog/2018398

http://www.ibm.com/developerworks/cn/java/j-lo-shiro/


 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏修

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值