shiro

Shiro的整体架构:

 shiro通过Secunrity  Manager提供安全服务

Secunrity  Manager管理着其他组件的实例

    1、Authenticator(认证器):管理登录、登出。

    2、Authorizer (授权器):赋予主体权限。用于用户的角色管理,给用户角色赋予什么权限

    3、Session Manager(Session管理器):Shiro'自己实现的管理机制,不借用任何容器使用Session。回话管理

    4、Session Dao(提供Session的操作): 主要有:增、删、改、查。

    5、Cache Manager(缓存管理器):角色和权限数据缓存。

    6、Pauggable Rwalms(数据库和数据源的桥梁):shiro获取数据是通过rwalms来获取。

流程:

    1、主体提交请求到Secunrity  Manager。

    2、Secunrity  Manager调用Authenticator进行认证。(Authenticator认证获取数据是通过realms获取的,再从数据源中获取信息)数据源信息和主体提交的信息作比对。

    3、(Authorizer授权获取数据是通过realms获取的,再从数据源中获取信息)数据源信息和主体提交的信息作比对。

    4、数据加密

Realms 是对数据库进行交互的,

从subject.login的login点击进去,走一遍源码

 

从checkRole点击进去走源码

自定义查询如上图

加密

shiro集成spring

过滤器拦截配置 DelegatingFilterProxy将我们的shiro交给spring容器来管理

HashedCredentialsMatcher加密

sessionId和session要进行捆绑

解决一次请求多个session的问题,把sessionkey中存储着request对象,把session放到request中去,第一次读取的时候读取redis,然后写入,后面在读取的时候直接从request中读取,这样就不用了多次请求了。

SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(user, password, getName());用来验证info和token的

return info 这个info是返回给底层的,不用管,写上就行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值