分享

Shiro | 实现权限验证完整版

 甘甘灰 2019-01-08

写在前面的话

提及权限,就会想到安全,是一个十分棘手的话题。这里只是作为学校Shiro的一个记录,而不是,权限就应该这样设计之类的。

Shiro框架

1、Shiro是基于Apache开源的强大灵活的开源安全框架。

2、Shiro提供了 认证授权企业会话管理安全加密缓存管理

3、Shiro与Security对比

Shiro与Security对比

4、Shiro整体架构

Shiro整体架构图

5、特性

Shiro特性

6、认证流程

Shiro认证流程

认证

当我们理解Shiro之后,我们就能比较容易梳理出认证流程,大概就是下面这样子。

Shiro认证流程

我们来看一段测试代码:

我们发现Shiro真正帮我们做的就是认证这一步,那他到底是如何去认证的呢?

Shiro登录过程

我们把我们登录的代码完善一下:

Realm

1、IniReam

配置文件 user.ini

测试代码

2、JdbcRealm

这里有两种方案,使用Shiro为我们提供了SQL语句,或者我们自己写SQL语句。

第一种:

第二种:

3、自定义Realm

在上面我们已经看过了 JdbcRealm,所以我们也可以依葫芦画瓢自定义Ramlm。

第一步:继承 AuthorizingRealm

第二步:实现认证方法

第三步:实现授权方法

通过AuthorizingRealm,我们完全按照自己的需求实现自己的业务逻辑。

可能Shiro提供的Realm并不能满足我们的实际开发需求,所以真正弄明白自定义Realm还是有很大帮助的,你觉得呢?

4、安全加密

明文密码?

好吧,我们看看Shiro为我们提供的加密方法。

那我们该怎么使用了?

在Realm认证中设置盐值

我们只需要告诉我们的Realm,需要对密码进行加密就可以了。

权限

1、Shiro为我们提供的权限

名称说明
anon不校验
authc作校验
roles需要具有指定角色(一个或多个)才能访问
perms需要具有指定角色(一个或多个)才能访问

2、配置

3、自定义权限认证

另外,看一下 Shiro Filter

Shiro Filter

会话管理(Session)

会话管理,就是拿到Session之后,我们怎么处理。什么意思?分布式系统,需要共享Session。

缓存管理(Cache)

缓存管理同Session管理,可以这样说,session是一套系统的基础,缓存决定系统的优化级别,很重要。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多