Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
E
estateplat-encrypt
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
狄熙卜
estateplat-encrypt
Commits
c7164297
提交
c7164297
authored
12月 22, 2023
作者:
狄熙卜
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
支持注解加解密配置
上级
3e47aa46
全部展开
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
38 行增加
和
0 行删除
+38
-0
pom.xml
pom.xml
+5
-0
DbEncryptXmlConfig.java
.../java/cn/gtmap/bdcdj/core/encrypt/DbEncryptXmlConfig.java
+0
-0
EncryptInterceptor.java
.../java/cn/gtmap/bdcdj/core/encrypt/EncryptInterceptor.java
+10
-0
Encrypt.java
.../java/cn/gtmap/bdcdj/core/encrypt/annotation/Encrypt.java
+23
-0
没有找到文件。
pom.xml
浏览文件 @
c7164297
...
@@ -66,6 +66,11 @@
...
@@ -66,6 +66,11 @@
<scope>
compile
</scope>
<scope>
compile
</scope>
<optional>
true
</optional>
<optional>
true
</optional>
</dependency>
</dependency>
<dependency>
<groupId>
org.reflections
</groupId>
<artifactId>
reflections
</artifactId>
<version>
0.9.11
</version>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
src/main/java/cn/gtmap/bdcdj/core/encrypt/DbEncryptXmlConfig.java
浏览文件 @
c7164297
差异被折叠。
点击展开。
src/main/java/cn/gtmap/bdcdj/core/encrypt/EncryptInterceptor.java
浏览文件 @
c7164297
package
cn
.
gtmap
.
bdcdj
.
core
.
encrypt
;
package
cn
.
gtmap
.
bdcdj
.
core
.
encrypt
;
import
cn.gtmap.bdcdj.core.encrypt.annotation.Encrypt
;
import
cn.gtmap.bdcdj.core.encrypt.executor.CryptType
;
import
cn.gtmap.bdcdj.core.encrypt.executor.CryptType
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.ibatis.executor.Executor
;
import
org.apache.ibatis.executor.Executor
;
...
@@ -12,10 +13,17 @@ import org.apache.ibatis.plugin.Plugin;
...
@@ -12,10 +13,17 @@ import org.apache.ibatis.plugin.Plugin;
import
org.apache.ibatis.plugin.Signature
;
import
org.apache.ibatis.plugin.Signature
;
import
org.apache.ibatis.session.ResultHandler
;
import
org.apache.ibatis.session.ResultHandler
;
import
org.apache.ibatis.session.RowBounds
;
import
org.apache.ibatis.session.RowBounds
;
import
org.reflections.scanners.FieldAnnotationsScanner
;
import
org.reflections.scanners.MethodAnnotationsScanner
;
import
org.reflections.util.ClasspathHelper
;
import
org.reflections.util.ConfigurationBuilder
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Method
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Properties
;
import
java.util.Properties
;
import
java.util.Set
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.ConcurrentHashMap
;
@Intercepts
({
@Signature
(
@Intercepts
({
@Signature
(
...
@@ -127,6 +135,8 @@ public class EncryptInterceptor implements Interceptor {
...
@@ -127,6 +135,8 @@ public class EncryptInterceptor implements Interceptor {
dbEncryptXmlConfig
.
getSqlSingleDecryptFileds
();
dbEncryptXmlConfig
.
getSqlSingleDecryptFileds
();
//添加预置的字段
//添加预置的字段
dbEncryptXmlConfig
.
addBaseConfigFileds
();
dbEncryptXmlConfig
.
addBaseConfigFileds
();
//根据注解获取加解密配置
dbEncryptXmlConfig
.
addAnnotationConfigFileds
();
this
.
cryptProperties
.
setGlobalEnableFields
(
dbEncryptXmlConfig
.
getGlobalEnableFields
());
this
.
cryptProperties
.
setGlobalEnableFields
(
dbEncryptXmlConfig
.
getGlobalEnableFields
());
this
.
cryptProperties
.
setGlobalDisableMapFields
(
dbEncryptXmlConfig
.
getGlobalDisableMapFields
());
this
.
cryptProperties
.
setGlobalDisableMapFields
(
dbEncryptXmlConfig
.
getGlobalDisableMapFields
());
this
.
cryptProperties
.
setGlobalDisableEntityFields
(
dbEncryptXmlConfig
.
getGlobalDisableEntityFields
());
this
.
cryptProperties
.
setGlobalDisableEntityFields
(
dbEncryptXmlConfig
.
getGlobalDisableEntityFields
());
...
...
src/main/java/cn/gtmap/bdcdj/core/encrypt/annotation/Encrypt.java
0 → 100644
浏览文件 @
c7164297
package
cn
.
gtmap
.
bdcdj
.
core
.
encrypt
.
annotation
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
({
ElementType
.
METHOD
,
ElementType
.
FIELD
})
//方法和字段都可以使用
public
@interface
Encrypt
{
//分组 分组之后才能进行加解密
String
group
();
//方法上使用的字段 对sql中的字段进行加解密
String
fileds
()
default
""
;
//方法上使用的字段 对sql中入参的字段进行加密
String
encodeFileds
()
default
""
;
//方法上使用的字段 对sql中返回值的字段进行解密
String
decodeFileds
()
default
""
;
//方法上使用的字段 在只有一个参数时加密
boolean
singleEncryptFileds
()
default
false
;
//方法上使用的字段 在只有一个参数时解密
boolean
singleDecryptFileds
()
default
false
;
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论