Shiro 是一款安全框架,主要就是用来做验证和授权。
学习Shiro的痛苦
1.1 概念糊涂和混淆
Shiro 并不难,但是这个是对已经掌握了Shiro的同学来说的。 如果之前没有接触过安全框架,第一次上手 Shiro的话,是非常的“打脑壳” 的,因为它一下子引入了很多非安全框架里没有的概念:Cryptography,Authentication,Authorization,Subject,Realm。不理解这些内容,就很难理解Shiro. 而不把Shiro 应用跑起来,又很难仅仅通过文字表面意思去理解这些概念。
1.2 网上教程难度陡峭
没错,随便在百度和google都可以搜索到shiro 的教程,但是很多压根儿就跑不起来。 而有的项目,通过繁琐的数据库配置,项目搭建终于跑起来了,但是它本身就已经是一个 shiro 结合 ssm 框架的项目。 如果有ssm框架基础还好一点,至少可以对ssm部分能够理解,可是它又是如何和 shiro 结合起来的? 他们是如何互动以达到 验证和授权效果的? 没有一个循序渐进的过程,这样的项目看得让人一头雾水,让人望而生畏。
2. 由浅入深的学习 Shiro
本人也是经历过上述学习Shiro的痛苦,所以深感要牢固地掌握Shiro的内容,需要一个由浅入深,循序渐进的课程。
到目前为止,个人对 Shiro 框架有了较好的理解和掌握,并且也在项目中集成和运用。于是把自己学习 Shiro的过程,按照由浅入深的方式,循序渐进地展开:
1. 先来个最简单的,两下就跑起来的基于ini配置文件的
shiro 入门
2. 基于ini和工作环境不匹配,所以还是要搞到数据库里
shiro jdbc方式使用数据库
3. 搞到数据库里,那么就存在密码问题了
shiro 如何进行加密
4. shiro的独立程序的做法就是上面3种,而现在应用都是基于web的,所以要来个基于web的做法,用的是Servlet
在web中使用shiro
5. 可是现在开发web用的又都是ssm一套,所以把上面的改造成ssm的
ssm 中整合 shiro
6. 上面的做法是基于注解的,虽然能用,但是修改后要重启才生效,不灵活。 而实际工作大都是基于url灵活配置的,所以要做成基于url配置的。 可是做成url配置的前提是要用户,角色,权限,以及彼此之间的多对多关系能够设置和管理。因为权限一套维护工作本身就相当复杂了, 所以本知识点先不讲如何url配置,而是把权限一套维护工作做了,为了下一个知识点做铺垫, 这样学习起来更平滑一些。
使用ssm 维护 shiro 一套权限维护
7. 接着再是基于url 配置权限的教程,基于上面一个知识点,这里做起来的改动就没有那么大了,更加容易掌握。
基于url配置权限
8. 上面3种做法都是基于ssm的, 眼下springboot也很流行,本知识点就把ssm的做法改造成了springboot的做法了。
springboot 整合 shiro
通过上面这样一个渐进地,难度逐渐增加地方式,学习者可以更加容易地理解 shiro 本身的工作原理,如何整合到项目中来,以及它是如何在项目在发挥作用的。
3. 对学习过程的友好支持
要想掌握一个对自己而言比较新的技术,仅仅有代码和几个配置文件,几乎很难成功运行出想要的结果,所以为了帮助学习者更顺畅,做了一下几部分帮助措施:
对当前知识提供了可以运行的程序
一个好的学习过程,最好是反过来的。先知道结果,然后才去看为了达到这个结果,而要采取什么步骤。这样既有效率,也更有信心。
2. 数据库的表结构和内容
在支持数据库的shiro应用中,需要用到特定的表结构,所以我也会提供
当然了,有用于测试的表数据就更好了
3. 详尽的学习步骤,以及各个步骤的解释
在知道了运行效果,并建立了学习信心之后,再来学习到底都做了哪些工作以达到当前的目标,这样带着目标,带着问题去学习,就能有的放矢,学习效率更高。
4. 教程地址
当然,最好还能是免费的~
Shiro 系列教程内容安排 | 基于实例代码分步讲解 一站式学习Java | how2j.cn
局限于个人能力和视野,教程还有诸多不足支持,请多指教,谢谢
网友评论