Shiro 功能齐全易用的 Java 安全框架 - 文章教程

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

发布于 2021-03-12 字数 1753 浏览 947 评论 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…

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

上一篇:

下一篇:

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

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

2583 文章
29 评论
84935 人气
更多

推荐作者

猫性小仙女

文章 1 评论 0

qq_VO6LhT

文章 0 评论 0

猿舌电影

文章 0 评论 0

7556275422

文章 0 评论 0

YYQ_139

文章 0 评论 0