This commit is contained in:
2019-08-15 01:25:05 +08:00
parent 3c56288991
commit 7242f6d76c
74 changed files with 4375 additions and 126 deletions
+13
View File
@@ -0,0 +1,13 @@
# entity
数据库映射类,与数据库字段一一对应
# dao
数据库操作映射层,控制表数据CRUD,或简单查询
# service
简单的函数,比如新增、删除、修改、查询,不对数据进行处理,封装dao,也不调用dao进行复杂业务
# biz
灵活运用service实现各种复杂的业务,不仅仅包含CRUD, 简单的CRUD可以直接引用dao
特殊的必须使用sql才能处理的就引用service进行处理
# bo(这里写vo也行, 个人理解, 不喜勿碰)
包含在返回给客户端(即浏览器)Result中的各种bo,用于向前端输出所需要的数据
# query
查询对象,即一个以上(不包含)的查询值时,必须将参数封装成query对象
+8
View File
@@ -0,0 +1,8 @@
# zilean-common
公共的方法、对象、常量等等
# zilean-base
基础业务,比如:用户、数据字典、操作日志、权限等等
# zilean-cache
缓存模块,本地缓存、Redis缓存、ehcache等等
# zilean-mybatis
自定义MyBatis模块,简化一般CRUD
@@ -0,0 +1 @@
# zilean-{项目简称}-{子模块简称}
+2
View File
@@ -0,0 +1,2 @@
# Jwt Token认证框架
使用带签名的token来做用户和权限验证
+14
View File
@@ -0,0 +1,14 @@
# Shiro权限管理框架
## SecurityManager
可以理解成控制中心,所有请求最终基本上都通过它来代理转发,一般我们程序中不需要直接跟他打交道。
## Subject
请求主体。比如登录用户,比如一个被授权的app。在程序中任何地方都可以通过SecurityUtils.getSubject()获取到当前的subject。subject中可以获取到Principal,这个是subject的标识,比如登陆用户的用户名或者id等,shiro不对值做限制。但是在登录和授权过程中,程序需要通过principal来识别唯一的用户。
## Realm
通俗一点理解就是realm可以访问安全相关数据,提供统一的数据封装来给上层做数据校验。shiro的建议是每种数据源定义一个realm,比如用户数据存在数据库可以使用JdbcRealm;存在属性配置文件可以使用PropertiesRealm。一般我们使用shiro都使用自定义的realm。
当有多个realm存在的时候,shiro在做用户校验的时候会按照定义的策略来决定认证是否通过,shiro提供的可选策略有一个成功或者所有都成功等。
## 总结
一个realm对应了一个CredentialsMatcher,用来做用户提交认证信息和realm获取得用户信息做比对,shiro已经提供了常用的比如用户密码和存储的Hash后的密码的对比。
## 使用Shiro主要做了三件事
1、用户登录时做用户名密码校验
2、用户登录后收到请求时做JWT Token的校验
3、用户权限的校验
Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

@@ -0,0 +1,15 @@
分层领域模型规约:
DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。
DTO( Data Transfer Object):数据传输对象,Service或Manager向外传输的对象。
BO( Business Object):业务对象。 由Service层输出的封装业务逻辑的对象。
AO( Application Object):应用对象。 在Web层与Service层之间抽象的复用对象模型,极为贴近展示层,复用度不高。
VO( View Object):显示层对象,通常是Web向模板渲染引擎层传输的对象。
POJO( Plain Ordinary Java Object):在本手册中, POJO专指只有setter/getter/toString的简单类,包括DO/DTO/BO/VO等。
Query:数据查询对象,各层接收上层的查询请求。 注意超过2个参数的查询封装,禁止使用Map类来传输。
领域模型命名规约:
数据对象:xxxDO,xxx即为数据表名。
数据传输对象:xxxDTO,xxx为业务领域相关的名称。
展示对象:xxxVO,xxx一般为网页名称。
POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。