shiro 的认证,授权,加密(ssm+shiro)

1、shiro 是什么

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

2、Shiro四大核心功能:Authentication,Authorization,Cryptography,Session Management

3.Shiro三个核心组件:Subject, SecurityManager 和 Realms.

  Subject:主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫,机器人等;即一个抽象概念;所有Subject都绑定到SecurityManager,与Subject的所有交互都会委托给SecurityManager;可以把Subject认为是一个门面;SecurityManager才是实际的执行者;

  SecurityManager:安全管理器;即所有与安全有关的操作都会与SecurityManager交互;且它管理着所有Subject;可以看出它是Shiro的核心,它负责与后边介绍的其他组件进行交互,如果学习过SpringMVC,你可以把它看成DispatcherServlet前端控制器;

  Realm:域,Shiro从Realm获取安全数据(如用户、角色、权限),就是说SecurityManager要验证用户身份,那么它需要从Realm获取相应的用户进行比较以确定用户身份是否合法;也需要从Realm得到用户相应的角色/权限进行验证用户是否能进行操作;可以把Realm看成DataSource,即安全数据源。

4、shiro认证流程

1、Shiro把用户的数据封装成标识token,token一般封装着用户名,密码等信息;

2、使用Subject门面获取到封装着用户的数据的标识token;

3、Subject把标识token交给SecurityManager,在SecurityManager安全中心中,SecurityManager把标识token委托给认证器;Authenticator进行身份验证。认证器的作用一般是用来指定如何验证,它规定本次认证用到哪些Realm;

4、认证器Authenticator将传入的标识token,与数据源Realm对比,验证token是否合法。

shiro的授权

RBAC所代表的是对角色进行控制,即只控制资源与角色之间的关系,并且一般来说这里的资源粒度只是细化到页面,但是对于一些要求更加细致的权限控制(控制到按钮)单纯的架构层面就无法满足,此时就需要程序员对页面进行处理,架构层面的需要后期处理就说明设计模式有所欠缺。

RBAC新解所代表的是粒度比RBAC对资源划分更加细化,它直接对访问资源的任何操作做权限控制
参看博文:“RBAC”和“RBAC新解”_xk147258的博客-CSDN博客_rbac新解

这里我们只看在源码中,shiro的授权流程是怎样的

SpringMVC 异常统一处理的三种方式:

  1. 使用 @ExceptionHandler 注解
  2. 实现 HandlerExceptionResolver 接口
  3. 使用 @ControllerAdvice 注解

总结

当以上三个方式,一起出现时,只执行执行范围最小的方式,后面的方式不再执行处理;

执行范围:@ExceptionHandler < @ControllerAdvice+@E..Handler < HandlerExceptionResolver

人话:当某个Mapping方法发生异常后,先由@ExceptionHandler 处理;如果没有上者,则由@ControllerAdvice+@E..Handler 处理;如果没有上者 则由 HandlerExceptionResolver 处理

1、ExceptionHandler参数为 要处理器的 异常类(或子类)

 

 

 2、校验框架的异常处理

 

4、算数异常

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值