Shiro的部署与试用
在 https://github.com/ityouknow/spring-boot-examples 可以下载到写好的示例代码。
在 http://www.ityouknow.com/springboot/2017/06/26/springboot-shiro.html 可以了解一些基础常识。
在实际过程中,发现可能报错以下信息
internal.loader.ClassLoaders$AppClassLoader cannot be cast to java.base
此时在pom.xml中删除devtools包引用解决,默认那个要求Java 9。
之后会碰到一个warning
//https://issues.apache.org/jira/browse/GROOVY-8339
An illegal reflective access operation has occurred
不用管也可以。
需要数据库中有对应账号数据,否则可以运行而无法登陆。
这篇教程里面是不涉及修改”记住密码”功能的。
SpringMVC相关配置方法见(注意 泄露加密方法 + 密钥是会被黑客攻击的!)https://blog.yoodb.com/yoodb/article/detail/296
SpringBoot相关配置方法见(注意 泄露加密方法 + 密钥是会被黑客攻击的!)
[https://mrbird.cc/Spring-Boot-Shiro%20Remember-Me.html](https://mrbird.cc/Spring-Boot-Shiro%20Remember-Me.html)
Shiro的漏洞分析
看起来像是RememberMe功能存在反序列化问题,当时官方采用的是加密 + 加盐 + 加密钥的Cookie后在序列化/反序列化,对象Cookie存储在客户端本地,若密钥泄露的情况下,则会出现漏洞。
Java序列化后原文一般为 ac ed 00 05 打头。(二进制)
类似于这种的其他框架性语言还有哪些
- 待补充
关键参数
问题代码
shiroConfig.java
web/src/main/java/org/apache/shiro/web/mgt/DefaultWebSecurityManager.java
参考资料
如果出现数据库无法插入中文,参考 - https://blog.csdn.net/xlgen157387/article/details/39802505
Springboot + Shiro的RememberMe功能 - https://blog.csdn.net/aqsunkai/article/details/69788070