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配置的话,我们在后面框架整合的时候在进行讨论,这篇主要研究一下身份认证的流程。我觉得自己好水,哈哈哈。。。