Shiro框架学习-身份验证

来源:互联网 发布:linux查看ftp用户权限 编辑:程序博客网 时间:2024/05/22 04:38

Shrio框架学习-身份验证
身份验证,即身份的证实,通过一些身份ID等标示信息来表明身份。
身份验证需要用户Subjext提供principals(身份)和credentials(证明)给shiro,从而验证用户身份。
Principals:身份,即主体的标识属性,唯一即可。一个主题可以有多个Principals,但只有一个Primary pricipals。
Credentials:证明/凭证,即只有主体知道的安全值。
这里有两种配置一种是官方的ini形式,还有一种spring配置模式。首先我们介绍一下ini形式的简单配置。
环境准备:
非maven项目,你需要导入一下jar包;
这里写图片描述
这里我们使用Maven来进行管理,maven中pom文件配置如下;
这里写图片描述
下面代码演示
首先创建 一个Shiro.ini文件,指定主体
[users]
Zhang/123、wang/123
测试代码如下:
这里写图片描述
相信看了上面的代码的同学都大概知道了shiro身份认证的步骤;下面贴出流程图,看你走通了没。
这里写图片描述

1.首先调用subject.login()方法进行认证,然后委托给Security Manager;
2.Security Manager负责真正的身份验证逻辑,委托给Authenticator进行身份验证;
3.Authenticator才是真正的身份验证者,是Shiro API中核心的身份认证入口(也支持自定义插入自己的实现)。Authenticator可能调用AuthenticationStrategy进行多Realm认证(默认ModularRealmAuthenticator会调用AuthenticationStrategy进行多Realm身份认证);
4.Authenticator会将token传入Realm,从Realm获取身份信息。如果没有返回/抛异常,身份认证失败,此处可以进行多Realm配置,然后按照顺序或者策略进行访问(此处下一篇再详谈);
spring配置的话,我们在后面框架整合的时候在进行讨论,这篇主要研究一下身份认证的流程。我觉得自己好水,哈哈哈。。。

0 0
原创粉丝点击