Shiro身份验证(三)

Shiro的认证过程包括收集Subject的身份和凭证、提交验证、处理结果。Remembered状态是非匿名且已知身份,而Authenticated状态是经过验证。注销功能允许解除与应用程序的绑定。身份验证涉及Authenticator、AuthenticationStrategy和Realm,ModularRealmAuthenticator协调多个Realm的认证策略,如AtLeastOneSuccessfulStrategy。Realm验证顺序可以是隐式或明确配置。
摘要由CSDN通过智能技术生成


Authentication(身份验证)就是验证身份的过程,即在应用程序中验证他们到底存不存在。为了验证他们的身份,他们需要提供一些让应用程序信任的标识信息。

在Shiro中,用户必须提供principals(身份)和credentials(凭证)给Shiro,让应用程序验证用户身份。

  • Principals是一个主体的标识属性,它可以是任何东西,比如用户名、邮箱和手机等唯一标识。虽然Subject可以有任意数量principals,但是必须有一个主要principals。
  • Credentials是主体才知道秘密值。

它们最常见的例子就是用户名/密码的组合。

验证Subject

我们在Shiro的介绍(一)已经诉述过,验证Subject一般分为三步,我们来详解这三步。

        Step1:收集Subject的身份和凭证

// 收集用户名/密码
UsernamePasswordToken token = new UsernamePasswordToken(username, password);

// 设置”Remember Me”
token.setRememberMe(true);
如你所见,“UsernamePasswordToken”类支持最常见的用户名/密码身份验证方式,这个类实现了Shiro的“org.apache.shiro.authc.AuthenticationToken”接口,而这个接口用于Shiro验证系统验证提交的身份和凭证。

       Step2:提交身份和凭证

// 获取Subject
Subject currentUser = SecurityUtils.getSubject();

// 登录(提交身份和凭证)
currentUser.login(token);
如你所见,获取Subject当前运行实例,提交UsernamePasswordToken实例,执行登录操作。

        Step3:处理成功或失败

try {
    currentUser.login(token);
} catch ( U
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值