Shiro 功能齐全易用的 Java 安全框架

发布于 2021-03-12 13:07:29 字数 1413 浏览 1241 评论 0

Shiro 如其官方介绍的一样,功能齐全易用的Java安全框架,功能包括认证、授权、加密、会话管理。

Authentication 认证

Subject:安全里面具体的“用户",这个用户既可以指人也可以第三方程序或者是一个用来连接你的程序的程序。简单来说subject就是和应用通信的对象。
Pricipals:Subject的标识属性,如果Subject一个User类的话,那么Pricipals可以是username或者是email,总之就是能唯一标识这个Subject的属性。
Credentials:用来验证的私密数据,简单理解就是密码。
Realms:一种认证方式,比如LDAP,或者JDBC等等。

Shiro 认证流程

1、收集Subject的Pricipals和Credentials.

 UsernamePasswordToken token = new UsernamePasswordToken( username, password );

token对象是对Pricipals和Credentials的简单封装。

2、提交Pricipals和Credentials给认证系统

封装好的token会提交到认证系统中去,认证系统就是Realms,Shiro通过封装后认证的步骤简单至极。

 Subject currentUser = SecurityUtils.getSubject()
 currentUser.login(token)

login就是认证方法,为什么要获取currentUser呢?currentUser就是subject,前面说过subject即可指人或者一个进程等,在Shiro里面当前的执行线程中一直会有一个subject实例可用。

3、允许访问或者重新认证或者禁止访问

 try {
     currentUser.login(token);
 } catch ( UnknownAccountException uae ) { ...
         //为注册账户
 } catch ( IncorrectCredentialsException ice ) { ...
         //密码错误
 } catch ( LockedAccountException lae ) { ...
         //被限制账户
 } catch ( ExcessiveAttemptsException eae ) { ...
         //超出登录次数
 } ... catch your own ...
 } catch ( AuthenticationException ae ) {
         //其他异常
     //unexpected error?
 }
 //No problems, show authenticated view…

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文