⼈⼈开源之renren-security
renren-security,从这周开始我将要对其⽐较详细的研究,之前的研究只不过是⽐较浅的。正如在这篇⽂章中说过不要重复造轮⼦。
renren-security虽然源代码对外开放,但是⽬前相关的详细⽂档还是需要付费。但是我个⼈觉得付费也⾏,不付费也⾏。对于⽬前时间相对⽐较富⾜。我觉得它的技术架构就是我们Java的那⼀套,本质上并不会有多么⼤的变化。我觉得有必要锻炼下⾃我的解决问题和学习能⼒。由此,我决定对其开始研究。为期时间为⼀天。⼀天为24⼩时。⼯作⽇也就⼋个⼩时到九个⼩时左右。⼯作⽇的时间,不是特别够,因为我还得梳理最近的项⽬整个架构,⽐如如果在扩展会怎么样和整个流程的逻辑合理性还有待验证,这对于我和我的技术团队成员来说是⼀件⼤事,主要是优先级。但是开源项⽬优先级其实也不低。按照我们经理的构想,再开发⼀套类似的系统,应当是⾮常快的完成,⽽不是我们Java团队花了整整两个⽉或三个⽉才完成。所以我们需要借助⼀个有效的开源框架帮助我们提升开发效率。
之所以列举出来,是想⽐较详细的阐述⼀点:在学习⼀项开源技术时,最好还是对于的背景还是要多少了解和熟悉,因为对于你在接下来的学习中或者是解决某些问题是有⼀定的帮助的。
起码⼀点,你⾄少清楚⼀点,这些技术栈你多少精通、⽤过、熟悉、了解过、听过等等。
项⽬说明
采⽤SpringBoot、MyBatis、Shiro框架,开发的⼀套权限系统,极低门槛,拿来即⽤。设计之初,就⾮常注重安全性,为企业系统保驾护航,让⼀切都变得如此简单。
提供了代码⽣成器,只需编写30%左右代码,其余的代码交给系统⾃动⽣成,可快速完成开发任务
⽀持MySQL、Oracle、SQL Server、PostgreSQL等主流数据库
具有如下特点
灵活的权限控制,可控制到页⾯或按钮,满⾜绝⼤部分的权限需求
完善的部门管理及数据权限,通过注解实现数据权限的控制
完善的XSS防范及脚本过滤,彻底杜绝XSS攻击
⽀持分布式部署,session存储在redis中
友好的代码结构及注释,便于阅读及⼆次开发
引⼊quartz定时任务,可动态完成任务的添加、修改、删除、暂停、恢复及⽇志查看等功能
页⾯交互使⽤Vue2.x,极⼤的提⾼了开发效率
引⼊swagger⽂档⽀持,⽅便编写API接⼝⽂档
数据权限设计思想
管理员管理、⾓⾊管理、部门管理,可操作本部门及⼦部门数据
菜单管理、定时任务、参数管理、字典管理、系统⽇志,没有数据权限
业务功能,按照⽤户数据权限,查询、操作数据【没有本部门数据权限,也能查询本⼈数据】
项⽬结构
renren-security
├─renren-common 公共模块
│
├─renren-admin 管理后台
│├─db 数据库SQL脚本
││
│├─modules 模块
││├─job 定时任务
││├─oss ⽂件存储
││└─sys 系统管理(核⼼)
││
│└─resources
│├─mapper MyBatis⽂件
│├─statics 静态资源
│├─template 系统页⾯
││├─modules 模块页⾯
││├─index.html AdminLTE主题风格(默认主题)
││└─index1.html Layui主题风格
│└─l 全局配置⽂件
│
│
├─renren-api API服务
│
├─renren-generator 代码⽣成器
│└─resources
│├─mapper MyBatis⽂件
│├─template 代码⽣成器模板(可增加或修改相应模板)
│├─l 全局配置⽂件
│└─generator.properties 代码⽣成器,配置⽂件
│
技术选型:
核⼼框架:Spring Boot 2.0
安全框架:Apache Shiro 1.4
视图框架:Spring MVC 5.0
持久层框架:MyBatis 3.3
定时器:Quartz 2.3
数据库连接池:Druid 1.1
⽇志管理:SLF4J 1.7、Log4j
页⾯交互:Vue2.x
软件需求
JDK1.8
MySQL5.5+
Maven3.0+
本地部署
通过git下载源码
创建数据库renren_security,数据库编码为UTF-8
执⾏db/mysql.sql⽂件,初始化数据【按需导⼊表结构及数据】
修改l⽂件,更新MySQL账号和密码
在renren-security⽬录下,执⾏mvn clean install
Eclipse、IDEA运⾏AdminApplication.java,则可启动项⽬【renren-admin】
renren-admin访问路径:
swagger⽂档路径:
账号密码:admin/admin
Eclipse、IDEA运⾏ApiApplication.java,则可启动项⽬【renren-api】
renren-api访问路径:
Eclipse、IDEA运⾏GeneratorApplication.java,则可启动项⽬【renren-generator】renren-generator访问路径:
分布式部署
分布式部署,需要安装redis,并配置config.properties⾥的redis信息
需要配置【dis.open=true】,表⽰开启redis缓存
源代码下载开源社区需要配置【dis=true】,表⽰把shiro session存到redis⾥
项⽬演⽰
演⽰地址:
账号密码:admin/admin
如何交流、反馈、参与贡献?
开发⽂档:
官⽅社区:
gitee仓库:
github仓库::
官⽅QQ:324780204、145799952(进⼊QQ是需要收费的,费⽤不⾼)
⼩结:
今天仅仅只是⼀个背景介绍,接下来会有对应的简单实战,你可以理解为简单的⼜浅⼊深(当然了,不是那种深⼊到源码分析的那种),是由浅度使⽤到深度使⽤。希望能对⼤家有⼀定的帮助。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论