前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >怀英漫谈6-shiro-02

怀英漫谈6-shiro-02

作者头像
用户1335799
发布2018-03-21 19:00:11
6620
发布2018-03-21 19:00:11
举报

你好,这次我想接着上上次的Shiro的话题,聊聊Shiro怎么用。

上次我们说过Shiro有一个外部视角,也有一个内部视角。而外部视角就是通过应用(Application Code)接收验证信息,将验证信息封装成验证对象(Subject),并将该对象传给SSM(Shiro SecurityManager),最后再由Realm做最终的验证。SSM就相当于一个代理机构,而真正干活的是其下属的Realm。

内部视角更多地关注Shiro SecurityManager。也就是回答了“SSM内部是如何将对象信息传递给Realm,Realm是如何验证的”这两个问题。首先,SecurityManager会接收封装成token对象的待验证信息,接收到这个token对象之后,SecurityManager会将其发送给Authenticator,Authenticator才是真正的身份验证者,Shiro API中核心身份认证入口点。一些特殊的情况下,需要特殊的验证流程的,可以通过重写该对象来插入自己的实现。Authenticator拿到token之后会直接将其交给它手下的AuthenticationStrategy,此时为什么不直接验证呢,因为验证的方式可能有邮箱,手机,用户名多种,而这些验证方式的种类只有AuthenticationStrategy知道,所以交给它是最高效的一种方式。对了,每一种不同的验证方式其实就是一个Realm对象,当AuthenticationStrategy拿到token之后会将其分发给出Realm,再通过Realm返回的每个成功或失败的登录信息的比对,确定最终的验证结果。

上面的话有些官方了,举个例子说应该会更好理解。蒋介石某日想要重用阎宝航(中共红色间谍),于是他就打电话给军统(SecurityManager),验证他的身份。而军统正真做人事情报搜集的可能是一局(Authenticator),由于验证身份不仅仅是查姓名,年龄,籍贯这么简单,它需要查很多个方面(Realm),所以这事就被指派给了特务头子谭文强(AuthenticationStrategy)全权负责。最终谭文强手下负责各个方面调查的特务们没有一个查出阎宝航的问题,也就是说阎宝航的身份验证通过了,于是谭文强就将阎宝航通过的信息,以及其身份信息逐级向上传递,最终,蒋介石就会得到一个阎宝航验证通过,及其身份信息的绝密文件。如果验证不通过的话,一般就是通过红色电话一层一层向上传递(对应着代码中的异常)。

最后我们来聊一聊Shiro 的 Hello World该怎么弄。

首先要导入shiro的jar包,一般是四个,分别是shiro-all-1.3.2.jar、log4j-1.2.15.jar、slf4j-api-1.6.1.jar、slf4j-log4j12-1.6.1.jar。然后进入官方提供的shiro-root里面,将其中的sample\quickstart\src\main下的java文件夹中的Quickstart.java和resource文件夹下的log4j和shiro.ini文件放入工程中相应的位置,最后打开Quickstart.java,运行里面的main方法,控制台不报错的话,就算运行成功了。如果有问题,可以点击参考资料的视频地址查看,查询,解决。

清单

  1. Shiro中比较重要的是Realm,它是验证的最终执行者。
  2. 验证过程中的Authenticator是可以自己实现的。

参考资料

尚硅谷的《shiro.pdf》

视频地址:http://www.gulixueyuan.com/course/45

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 怀英的自我修炼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档