Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ghsby
o2oa
提交
3fa03e7a
o2oa
项目概览
ghsby
/
o2oa
落后 Fork 源项目 2880 个版本
Fork自
浙江兰德纵横网络技术股份有限公司 / o2oa
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
o2oa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3fa03e7a
编写于
8月 02, 2022
作者:
Z
zhourui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
enable encrypt password
上级
f54eb811
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
55 addition
and
42 deletion
+55
-42
o2server/x_base_core_project/src/main/java/com/x/base/core/project/build/CreateConfigSample.java
...ava/com/x/base/core/project/build/CreateConfigSample.java
+2
-0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/DumpRestoreData.java
.../java/com/x/base/core/project/config/DumpRestoreData.java
+0
-13
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/TernaryManagement.java
...ava/com/x/base/core/project/config/TernaryManagement.java
+14
-6
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Token.java
...t/src/main/java/com/x/base/core/project/config/Token.java
+12
-2
o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/Crypto.java
...t/src/main/java/com/x/base/core/project/tools/Crypto.java
+25
-13
o2server/x_console/src/main/java/com/x/server/console/action/DumpData.java
...e/src/main/java/com/x/server/console/action/DumpData.java
+1
-4
o2server/x_console/src/main/java/com/x/server/console/action/RestoreData.java
...rc/main/java/com/x/server/console/action/RestoreData.java
+1
-4
未找到文件。
o2server/x_base_core_project/src/main/java/com/x/base/core/project/build/CreateConfigSample.java
浏览文件 @
3fa03e7a
...
...
@@ -31,6 +31,7 @@ import com.x.base.core.project.config.HuaweiPushConfig;
import
com.x.base.core.project.config.JpushConfig
;
import
com.x.base.core.project.config.MPweixin
;
import
com.x.base.core.project.config.Messages
;
import
com.x.base.core.project.config.Miscellaneous
;
import
com.x.base.core.project.config.Node
;
import
com.x.base.core.project.config.Person
;
import
com.x.base.core.project.config.Portal
;
...
...
@@ -88,6 +89,7 @@ public class CreateConfigSample {
classes
.
add
(
WeLink
.
class
);
classes
.
add
(
WorkTime
.
class
);
classes
.
add
(
ZhengwuDingding
.
class
);
classes
.
add
(
Miscellaneous
.
class
);
Collections
.
sort
(
classes
,
(
c1
,
c2
)
->
c1
.
getCanonicalName
().
compareTo
(
c2
.
getCanonicalName
()));
for
(
Class
<?>
cls
:
classes
)
{
...
...
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/DumpRestoreData.java
浏览文件 @
3fa03e7a
...
...
@@ -22,7 +22,6 @@ public class DumpRestoreData extends ConfigObject {
public
static
final
String
RESTOREOVERRIDE_CLEAN
=
"clean"
;
public
static
final
String
RESTOREOVERRIDE_SKIPEXISTED
=
"skipExisted"
;
public
static
final
Boolean
DEFAULT_PARALLEL
=
true
;
public
static
final
Boolean
DEFAULT_REDISTRIBUTE
=
true
;
public
static
final
Boolean
DEFAULT_EXCEPTIONINVALIDSTORAGE
=
true
;
public
static
final
Boolean
DEFAULT_ATTACHSTORAGE
=
true
;
...
...
@@ -32,7 +31,6 @@ public class DumpRestoreData extends ConfigObject {
this
.
includes
=
new
ArrayList
<>();
this
.
excludes
=
new
ArrayList
<>();
this
.
mode
=
MODE_LITE
;
this
.
parallel
=
DEFAULT_PARALLEL
;
this
.
attachStorage
=
DEFAULT_ATTACHSTORAGE
;
this
.
exceptionInvalidStorage
=
DEFAULT_EXCEPTIONINVALIDSTORAGE
;
this
.
itemCategory
=
DEFAULT_ITEMCATEGORY
;
...
...
@@ -47,9 +45,6 @@ public class DumpRestoreData extends ConfigObject {
@FieldDescribe
(
"导出数据模式,lite|full,默认使用lite"
)
private
String
mode
;
@FieldDescribe
(
"使用并行导出,默认true"
)
private
Boolean
parallel
;
@FieldDescribe
(
"无法获取storage是否升起错误."
)
private
Boolean
exceptionInvalidStorage
;
...
...
@@ -89,10 +84,6 @@ public class DumpRestoreData extends ConfigObject {
return
BooleanUtils
.
isNotFalse
(
exceptionInvalidStorage
);
}
public
Boolean
getParallel
()
{
return
BooleanUtils
.
isNotFalse
(
parallel
);
}
public
String
getMode
()
{
return
StringUtils
.
equals
(
MODE_FULL
,
mode
)
?
MODE_FULL
:
MODE_LITE
;
}
...
...
@@ -121,10 +112,6 @@ public class DumpRestoreData extends ConfigObject {
this
.
excludes
=
excludes
;
}
public
void
setParallel
(
Boolean
parallel
)
{
this
.
parallel
=
parallel
;
}
public
void
setExceptionInvalidStorage
(
Boolean
exceptionInvalidStorage
)
{
this
.
exceptionInvalidStorage
=
exceptionInvalidStorage
;
}
...
...
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/TernaryManagement.java
浏览文件 @
3fa03e7a
package
com.x.base.core.project.config
;
import
java.io.File
;
import
java.io.UnsupportedEncodingException
;
import
java.security.InvalidKeyException
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.spec.InvalidKeySpecException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.crypto.BadPaddingException
;
import
javax.crypto.IllegalBlockSizeException
;
import
javax.crypto.NoSuchPaddingException
;
import
org.apache.commons.io.FileUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -326,8 +334,8 @@ public class TernaryManagement extends ConfigObject {
return
this
.
_systemManagerPassword
;
}
public
void
setSystemManagerPassword
(
String
systemManagerPassword
)
{
this
.
systemManagerPassword
=
systemManagerPassword
;
public
void
setSystemManagerPassword
(
String
systemManagerPassword
)
throws
InvalidKeyException
,
NoSuchAlgorithmException
,
InvalidKeySpecException
,
NoSuchPaddingException
,
IllegalBlockSizeException
,
BadPaddingException
,
UnsupportedEncodingException
{
this
.
systemManagerPassword
=
Crypto
.
formattedDefaultEncrypt
(
systemManagerPassword
)
;
}
public
String
getSecurityManagerPassword
()
{
...
...
@@ -339,8 +347,8 @@ public class TernaryManagement extends ConfigObject {
return
this
.
_securityManagerPassword
;
}
public
void
setSecurityManagerPassword
(
String
securityManagerPassword
)
{
this
.
securityManagerPassword
=
securityManagerPassword
;
public
void
setSecurityManagerPassword
(
String
securityManagerPassword
)
throws
InvalidKeyException
,
NoSuchAlgorithmException
,
InvalidKeySpecException
,
NoSuchPaddingException
,
IllegalBlockSizeException
,
BadPaddingException
,
UnsupportedEncodingException
{
this
.
securityManagerPassword
=
Crypto
.
formattedDefaultEncrypt
(
securityManagerPassword
)
;
}
public
String
getAuditManagerPassword
()
{
...
...
@@ -351,7 +359,7 @@ public class TernaryManagement extends ConfigObject {
return
this
.
_auditManagerPassword
;
}
public
void
setAuditManagerPassword
(
String
auditManagerPassword
)
{
this
.
auditManagerPassword
=
auditManagerPassword
;
public
void
setAuditManagerPassword
(
String
auditManagerPassword
)
throws
InvalidKeyException
,
NoSuchAlgorithmException
,
InvalidKeySpecException
,
NoSuchPaddingException
,
IllegalBlockSizeException
,
BadPaddingException
,
UnsupportedEncodingException
{
this
.
auditManagerPassword
=
Crypto
.
formattedDefaultEncrypt
(
auditManagerPassword
)
;
}
}
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Token.java
浏览文件 @
3fa03e7a
package
com.x.base.core.project.config
;
import
java.io.File
;
import
java.io.UnsupportedEncodingException
;
import
java.security.InvalidKeyException
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.spec.InvalidKeySpecException
;
import
java.util.ArrayList
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
javax.crypto.BadPaddingException
;
import
javax.crypto.IllegalBlockSizeException
;
import
javax.crypto.NoSuchPaddingException
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.apache.commons.io.FileUtils
;
import
org.apache.commons.lang3.BooleanUtils
;
...
...
@@ -115,11 +123,13 @@ public class Token extends ConfigObject {
return
this
.
_password
;
}
public
void
setPassword
(
String
password
)
{
public
void
setPassword
(
String
password
)
throws
InvalidKeyException
,
NoSuchAlgorithmException
,
InvalidKeySpecException
,
NoSuchPaddingException
,
IllegalBlockSizeException
,
BadPaddingException
,
UnsupportedEncodingException
{
if
(
StringUtils
.
equals
(
password
,
initPassword
))
{
this
.
password
=
null
;
}
else
{
this
.
password
=
password
;
this
.
password
=
Crypto
.
formattedDefaultEncrypt
(
password
)
;
}
}
...
...
o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/Crypto.java
浏览文件 @
3fa03e7a
...
...
@@ -17,6 +17,7 @@ import java.security.spec.InvalidKeySpecException;
import
java.security.spec.PKCS8EncodedKeySpec
;
import
java.security.spec.X509EncodedKeySpec
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
import
javax.crypto.BadPaddingException
;
import
javax.crypto.Cipher
;
...
...
@@ -54,6 +55,11 @@ public class Crypto {
private
static
final
String
TYPE_SM4
=
"sm4"
;
private
static
final
Pattern
PLAINTEXT_TRANSFORM_REGEX
=
Pattern
.
compile
(
"^\\((ENCRYPT:|SCRIPT:)(.+?)\\)$"
);
private
static
final
String
ENCRYPT_PREFIX
=
"ENCRYPT:"
;
private
static
final
String
SCRIPT_PREFIX
=
"SCRIPT:"
;
public
static
String
encrypt
(
String
data
,
String
key
)
throws
Exception
{
return
encrypt
(
data
,
key
,
Config
.
person
().
getEncryptType
());
}
...
...
@@ -193,24 +199,24 @@ public class Crypto {
if
(
StringUtils
.
isEmpty
(
text
))
{
return
text
;
}
try
{
Matcher
matcher
=
StringTools
.
SCRIPTTEXT_REGEX
.
matcher
(
text
);
if
(
matcher
.
matches
())
{
String
value
=
StringEscapeUtils
.
unescapeJson
(
matcher
.
group
(
1
));
if
(
StringUtils
.
startsWithIgnoreCase
(
value
,
"ENCRYPT:"
))
{
String
de
=
StringUtils
.
substringAfter
(
value
,
":"
);
return
decrypt
(
de
,
NEVERCHANGEKEY
,
null
);
}
else
{
CompiledScript
cs
=
ScriptingFactory
.
functionalizationCompile
(
text
);
Matcher
matcher
=
PLAINTEXT_TRANSFORM_REGEX
.
matcher
(
text
);
if
(
matcher
.
matches
())
{
try
{
if
(
StringUtils
.
startsWithIgnoreCase
(
matcher
.
group
(
1
),
ENCRYPT_PREFIX
))
{
return
decrypt
(
matcher
.
group
(
2
),
NEVERCHANGEKEY
,
null
);
}
else
if
(
StringUtils
.
startsWithIgnoreCase
(
matcher
.
group
(
1
),
SCRIPT_PREFIX
))
{
CompiledScript
cs
=
ScriptingFactory
.
functionalizationCompile
(
StringEscapeUtils
.
unescapeJson
(
matcher
.
group
(
2
)));
ScriptContext
scriptContext
=
new
SimpleScriptContext
();
return
JsonScriptingExecutor
.
evalString
(
cs
,
scriptContext
);
}
}
else
{
return
text
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
()
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
()
;
}
else
{
return
text
;
}
return
null
;
}
...
...
@@ -221,4 +227,10 @@ public class Crypto {
String
str
=
Base64
.
encodeBase64URLSafeString
(
bt
);
return
URLEncoder
.
encode
(
str
,
StandardCharsets
.
UTF_8
.
name
());
}
public
static
String
formattedDefaultEncrypt
(
String
data
)
throws
InvalidKeyException
,
NoSuchAlgorithmException
,
InvalidKeySpecException
,
NoSuchPaddingException
,
IllegalBlockSizeException
,
BadPaddingException
,
UnsupportedEncodingException
{
return
"("
+
ENCRYPT_PREFIX
+
defaultEncrypt
(
data
)
+
")"
;
}
}
o2server/x_console/src/main/java/com/x/server/console/action/DumpData.java
浏览文件 @
3fa03e7a
...
...
@@ -96,11 +96,8 @@ public class DumpData {
DateTools
.
compact
(
start
)
+
"_dump.xml"
);
PersistenceXmlHelper
.
write
(
xml
.
toString
(),
classNames
,
true
,
classLoader
);
StorageMappings
storageMappings
=
Config
.
storageMappings
();
Stream
<
String
>
stream
=
BooleanUtils
.
isTrue
(
Config
.
dumpRestoreData
().
getParallel
())
?
classNames
.
parallelStream
()
:
classNames
.
stream
();
AtomicInteger
idx
=
new
AtomicInteger
(
1
);
stream
.
forEach
(
className
->
{
classNames
.
stream
()
.
forEach
(
className
->
{
Thread
.
currentThread
().
setContextClassLoader
(
classLoader
);
String
nameOfThread
=
Thread
.
currentThread
().
getName
();
Thread
.
currentThread
().
setName
(
DumpData
.
class
.
getName
()
+
":"
+
className
);
...
...
o2server/x_console/src/main/java/com/x/server/console/action/RestoreData.java
浏览文件 @
3fa03e7a
...
...
@@ -111,12 +111,9 @@ public class RestoreData {
Path
xml
=
Paths
.
get
(
Config
.
dir_local_temp_classes
().
getAbsolutePath
(),
DateTools
.
compact
(
start
)
+
"_restore.xml"
);
PersistenceXmlHelper
.
write
(
xml
.
toString
(),
classNames
,
true
,
classLoader
);
Stream
<
String
>
stream
=
BooleanUtils
.
isTrue
(
Config
.
dumpRestoreData
().
getParallel
())
?
classNames
.
parallelStream
()
:
classNames
.
stream
();
AtomicInteger
idx
=
new
AtomicInteger
(
1
);
AtomicLong
total
=
new
AtomicLong
(
0
);
stream
.
forEach
(
className
->
{
classNames
.
stream
()
.
forEach
(
className
->
{
Thread
.
currentThread
().
setContextClassLoader
(
classLoader
);
try
{
@SuppressWarnings
(
"unchecked"
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录