一、目标
- 使用springboot搭建一个微服务基本框架;
- 使用自定义加解密算法对所有账号密码进行加密存储(包括数据库账号密码、用户密码等);
- 使用shiro作为rbac权限集成框架,同时支持账号密码登录和微信认证登录,且优雅地使用多FormAuthenticationFilter、多Realm分别进行认证;
- 使用自定义操作日志框架,方便日后进一步扩展;
- 给出所有源码,以感谢所有热情分享技术的网友,包括好学的你;
二、步骤
- 实现自定义加解密算法,包括对称加密算法AES256和非对称加密算法RSA1024;
- 搭建Springboot框架,使用postgreSQL数据库,集成mybatis/c3p0/fastjson/log4j2,能够正常启动和加载;
- 自定义操作日志框架,支持通过注解和调用服务的方式记录操作日志到单独的存储介质;
- 集成jasypt框架,能够使用自定义AES256加密的数据库密码连接数据库,能够正常启动和加载;
- 集成自定义的一套rbac表结构,登录后,后台能够通过RSA1024加密的密码比较,完成认证过程;
- 集成shiro框架,登录认证改写至shiro框架,通过单FormAuthenticationFilter,单Realm完成登录过程;
- 通过shiro完成会话(缓存)管理和权限管理;
- 支持微信小程序Token认证机制,实现多FormAuthenticationFilter,多Realm的认证过程,以此经验,可任意扩展其它认证方式;
三、计划
- 以上所述目标均已实现。计划按照以上步骤,每步一篇总结的方式呈现给大家;
- 每篇总结会在一周内完成;
- 每篇总结的源码对应一个github maven工程;
四、总结
- springboot/shiro等官方文档写得比较简略,分析源码的收获会比较大,但我们通常只会用到框架的其中一小部分功能,感觉需要用到的时候再去学效果会更好;
- 网上给出的资料部分有疏漏的地方,部分代码给得不全,对框架产生了不少误解;
- 结合各路大神,总算完成了预期的目标,但是不想大家再走很多误区,所以在经过实际验证后,决定开源,并按照由浅入深的思路总结给大家,希望对你有帮助;