Shiro学习笔记之(四)Apache Shiro 认证(登陆)

Shiro学习笔记之(三)Apache Shiro SecurityMananger配置

一、概述

认证就是验证用户身份的过程,这里一般是提交用户身份信息(Principals)和凭证信息(Credentials)。Principals是Subject唯一标识属性,用来证明Subject,可以理解为身份证号码。Credentials,通俗理解密码,但是不局限于密码,指纹,视网膜,证书都可以。

二、认证过程

 认证过程大概分为三个步骤:搜集Subjects提交的Principals和Credentials--验证--通过验证结果觉得是否登陆访问。


login方法执行完未抛异常,代表认证通过,登陆成功。

三、认证配置

    3.1Authenticator(认证器)

       SecurityManager 实现默认使用一个ModularRealmAuthenticator实例,支持单个Realm或多个Realm。ModularRealmAuthenticator会依据认证策略来适配Realm,单个Realm直接采用。

也可以使用自定义的认证器,在[main]selection中配置,如下如


    3.2 AuthenticationStrategy(认证策略)

     在配置了多个Realm时,认证器就会依据AuthenticationStrategy组件来认证。Shiro主要有三种认证策略的实现:

     a.AtLeastOneSuccessfulStrategy ,至少一个Reaml验证成功

     b.FirstSuccessfulStrategy   第一个验证成功就视为成功

     c.AllSuccessfulStrategy 全部都要验证通过。

  默认是AtLeastOneSuccessfulStrategy ,可以通过配置文件指定策略


3.3 RealmAuthentication Order(Realm认证顺序)

     在认证策略中,Realm的认证顺序对认证还是有影响的。ModularRealmAuthenticator读取SecurityManager里面的Realm,使用遍历集合的方式进行发送token进行认证

 a.隐式排列 如果是ini配置文件,按照定义的顺序依次处理


   即按照 a,b,c的顺序处理

b.显示排列

使用securityManager.realms配置顺序。


按照c,b,a顺序执行,由此可见,隐式排列也是一种特殊的显示排列。

四、登出(注销)

执行subject.logout();方法登出,session会失效,RemenberMe cookie也会被删除。


下一篇 Shiro学习笔记之(五)Apache Shiro 授权






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值