Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
dataease
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
zhu
dataease
Commits
dc742d1b
提交
dc742d1b
authored
6月 03, 2021
作者:
wangjiahao
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/main' into main
上级
b6992067
f889d5f7
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
83 行增加
和
50 行删除
+83
-50
JWTFilter.java
backend/src/main/java/io/dataease/auth/filter/JWTFilter.java
+2
-1
JWTUtils.java
backend/src/main/java/io/dataease/auth/util/JWTUtils.java
+11
-7
DatasourceService.java
...ava/io/dataease/datasource/service/DatasourceService.java
+6
-1
DataSetTableTaskService.java
.../io/dataease/service/dataset/DataSetTableTaskService.java
+24
-6
ehcache.xml
backend/src/main/resources/ehcache/ehcache.xml
+21
-21
messages_en_US.properties
backend/src/main/resources/i18n/messages_en_US.properties
+4
-3
messages_zh_CN.properties
backend/src/main/resources/i18n/messages_zh_CN.properties
+4
-3
messages_zh_TW.properties
backend/src/main/resources/i18n/messages_zh_TW.properties
+4
-3
UpdateInfo.vue
frontend/src/views/dataset/data/UpdateInfo.vue
+7
-5
没有找到文件。
backend/src/main/java/io/dataease/auth/filter/JWTFilter.java
浏览文件 @
dc742d1b
...
...
@@ -6,6 +6,7 @@ import io.dataease.auth.entity.TokenInfo;
import
io.dataease.auth.service.AuthUserService
;
import
io.dataease.auth.util.JWTUtils
;
import
io.dataease.commons.utils.CommonBeanFactory
;
import
io.dataease.commons.utils.ServletUtils
;
import
io.dataease.i18n.Translator
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.shiro.authc.AuthenticationException
;
...
...
@@ -111,7 +112,7 @@ public class JWTFilter extends BasicHttpAuthenticationFilter {
// JWTUtils.removeTokenExpire(token);
String
newToken
=
JWTUtils
.
sign
(
tokenInfo
,
password
);
// 记录新token操作时间
JWTUtils
.
addTokenExpire
(
newToken
);
//
JWTUtils.addTokenExpire(newToken);
JWTToken
jwtToken
=
new
JWTToken
(
newToken
);
this
.
getSubject
(
request
,
response
).
login
(
jwtToken
);
...
...
backend/src/main/java/io/dataease/auth/util/JWTUtils.java
浏览文件 @
dc742d1b
...
...
@@ -24,7 +24,7 @@ public class JWTUtils {
// token过期时间1min (过期会自动刷新续命 目的是避免一直都是同一个token )
private
static
final
long
EXPIRE_TIME
=
1
*
60
*
1000
;
// 登录间隔时间10min 超过这个时间强制重新登录
private
static
long
Login_Interval
;
private
static
long
Login_Interval
;
...
...
@@ -84,17 +84,24 @@ public class JWTUtils {
*/
public
static
boolean
loginExpire
(
String
token
){
if
(
Login_Interval
==
0
)
{
int
minute
=
CommonBeanFactory
.
getBean
(
Environment
.
class
).
getProperty
(
"dataease.login_timeout"
,
Integer
.
class
,
8
*
60
);
String
property
=
CommonBeanFactory
.
getBean
(
Environment
.
class
).
getProperty
(
"dataease.login_timeout"
);
// 默认超时时间是8h
int
minute
=
StringUtils
.
isNotEmpty
(
property
)
?
Integer
.
parseInt
(
property
):
(
8
*
60
);
// 分钟换算成毫秒
Login_Interval
=
minute
*
1000
*
60
;
}
Long
now
=
System
.
currentTimeMillis
();
Long
lastOperateTime
=
tokenLastOperateTime
(
token
);
if
(
ObjectUtils
.
isEmpty
(
lastOperateTime
))
return
true
;
boolean
isExpire
=
false
;
if
(
lastOperateTime
!=
null
)
{
isExpire
=
now
-
lastOperateTime
>
Login_Interval
;
}
if
(
isExpire
)
{
// System.out.println("-----------------------");
// System.out.println("-----上次操作时间是["+lastOperateTime+"]-----");
// System.out.println("-----当前操作时间是["+now+"]-----");
// System.out.println("-----------------------");
}
return
isExpire
;
}
...
...
@@ -109,7 +116,7 @@ public class JWTUtils {
}
/**
* 生成签名,
1
min后过期
* 生成签名,
5
min后过期
* @param tokenInfo 用户信息
* @param secret 用户的密码
* @return 加密的token
...
...
@@ -158,12 +165,10 @@ public class JWTUtils {
CacheManager
cacheManager
=
CommonBeanFactory
.
getBean
(
CacheManager
.
class
);
Cache
tokens_expire
=
cacheManager
.
getCache
(
"tokens_expire"
);
Long
expTime
=
tokens_expire
.
get
(
token
,
Long
.
class
);
// System.out.println("get-------"+token+" :"+expTime);
return
expTime
;
}
public
static
void
removeTokenExpire
(
String
token
){
// System.out.println("remove----"+token);
CacheManager
cacheManager
=
CommonBeanFactory
.
getBean
(
CacheManager
.
class
);
Cache
tokens_expire
=
cacheManager
.
getCache
(
"tokens_expire"
);
tokens_expire
.
evict
(
token
);
...
...
@@ -173,7 +178,6 @@ public class JWTUtils {
CacheManager
cacheManager
=
CommonBeanFactory
.
getBean
(
CacheManager
.
class
);
Cache
tokens_expire
=
cacheManager
.
getCache
(
"tokens_expire"
);
long
now
=
System
.
currentTimeMillis
();
// System.out.println("add-------"+token+" :"+now);
tokens_expire
.
put
(
token
,
now
);
}
...
...
backend/src/main/java/io/dataease/datasource/service/DatasourceService.java
浏览文件 @
dc742d1b
...
...
@@ -21,6 +21,7 @@ import io.dataease.dto.dataset.DataTableInfoDTO;
import
io.dataease.i18n.Translator
;
import
io.dataease.service.dataset.DataSetGroupService
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -118,7 +119,11 @@ public class DatasourceService {
dbTableDTO
.
setEnableCheck
(
false
);
List
<
DatasetGroup
>
parents
=
dataSetGroupService
.
getParents
(
datasetTable
.
getSceneId
());
StringBuilder
stringBuilder
=
new
StringBuilder
();
parents
.
forEach
(
ele
->
stringBuilder
.
append
(
ele
.
getName
()).
append
(
"/"
));
parents
.
forEach
(
ele
->
{
if
(
ObjectUtils
.
isNotEmpty
(
ele
))
{
stringBuilder
.
append
(
ele
.
getName
()).
append
(
"/"
);
}
});
stringBuilder
.
append
(
datasetTable
.
getName
());
dbTableDTO
.
setDatasetPath
(
stringBuilder
.
toString
());
break
;
...
...
backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java
浏览文件 @
dc742d1b
package
io
.
dataease
.
service
.
dataset
;
import
io.dataease.base.domain.DatasetTableTask
;
import
io.dataease.base.domain.DatasetTableTaskExample
;
import
io.dataease.base.domain.DatasetTableTaskLog
;
import
io.dataease.base.domain.*
;
import
io.dataease.base.mapper.DatasetTableTaskMapper
;
import
io.dataease.commons.constants.JobStatus
;
import
io.dataease.commons.constants.ScheduleType
;
...
...
@@ -38,7 +36,9 @@ public class DataSetTableTaskService {
private
DataSetTableService
dataSetTableService
;
@Resource
private
ExtractDataService
extractDataService
;
public
DatasetTableTask
save
(
DataSetTaskRequest
dataSetTaskRequest
)
throws
Exception
{
checkName
(
dataSetTaskRequest
);
DatasetTableTask
datasetTableTask
=
dataSetTaskRequest
.
getDatasetTableTask
();
dataSetTableService
.
saveIncrementalConfig
(
dataSetTaskRequest
.
getDatasetTableIncrementalConfig
());
...
...
@@ -60,10 +60,10 @@ public class DataSetTableTaskService {
datasetTableTask
.
setId
(
UUID
.
randomUUID
().
toString
());
datasetTableTask
.
setCreateTime
(
System
.
currentTimeMillis
());
// SIMPLE 类型,提前占位
if
(
datasetTableTask
.
getRate
().
equalsIgnoreCase
(
ScheduleType
.
SIMPLE
.
toString
()))
{
if
(
extractDataService
.
updateSyncStatus
(
dataSetTableService
.
get
(
datasetTableTask
.
getTableId
())))
{
if
(
datasetTableTask
.
getRate
().
equalsIgnoreCase
(
ScheduleType
.
SIMPLE
.
toString
()))
{
if
(
extractDataService
.
updateSyncStatus
(
dataSetTableService
.
get
(
datasetTableTask
.
getTableId
())))
{
throw
new
Exception
(
Translator
.
get
(
"i18n_sync_job_exists"
));
}
else
{
}
else
{
//write log
DatasetTableTaskLog
datasetTableTaskLog
=
new
DatasetTableTaskLog
();
datasetTableTaskLog
.
setTableId
(
datasetTableTask
.
getTableId
());
...
...
@@ -119,4 +119,22 @@ public class DataSetTableTaskService {
datasetTableTaskExample
.
setOrderByClause
(
"create_time desc,name asc"
);
return
datasetTableTaskMapper
.
selectByExample
(
datasetTableTaskExample
);
}
private
void
checkName
(
DataSetTaskRequest
dataSetTaskRequest
)
{
DatasetTableTaskExample
datasetTableTaskExample
=
new
DatasetTableTaskExample
();
DatasetTableTaskExample
.
Criteria
criteria
=
datasetTableTaskExample
.
createCriteria
();
if
(
StringUtils
.
isNotEmpty
(
dataSetTaskRequest
.
getDatasetTableTask
().
getId
()))
{
criteria
.
andIdNotEqualTo
(
dataSetTaskRequest
.
getDatasetTableTask
().
getId
());
}
if
(
StringUtils
.
isNotEmpty
(
dataSetTaskRequest
.
getDatasetTableTask
().
getTableId
()))
{
criteria
.
andTableIdEqualTo
(
dataSetTaskRequest
.
getDatasetTableTask
().
getTableId
());
}
if
(
StringUtils
.
isNotEmpty
(
dataSetTaskRequest
.
getDatasetTableTask
().
getName
()))
{
criteria
.
andNameEqualTo
(
dataSetTaskRequest
.
getDatasetTableTask
().
getName
());
}
List
<
DatasetTableTask
>
list
=
datasetTableTaskMapper
.
selectByExample
(
datasetTableTaskExample
);
if
(
list
.
size
()
>
0
)
{
throw
new
RuntimeException
(
Translator
.
get
(
"i18n_task_name_repeat"
));
}
}
}
backend/src/main/resources/ehcache/ehcache.xml
浏览文件 @
dc742d1b
...
...
@@ -29,7 +29,7 @@
<defaultCache
eternal=
"false"
maxElementsInMemory=
"1000"
overflowToDisk=
"
tru
e"
overflowToDisk=
"
fals
e"
diskPersistent=
"false"
timeToIdleSeconds=
"0"
timeToLiveSeconds=
"600"
...
...
@@ -38,46 +38,46 @@
<cache
name=
"users_info"
eternal=
"false"
maxElementsInMemory=
"100
0
"
maxElementsOnDisk=
"0"
maxElementsInMemory=
"100"
maxElementsOnDisk=
"
100
0"
overflowToDisk=
"true"
diskPersistent=
"
fals
e"
timeToIdleSeconds=
"
28
800"
timeToLiveSeconds=
"3600
0
"
diskPersistent=
"
tru
e"
timeToIdleSeconds=
"
1
800"
timeToLiveSeconds=
"3600"
memoryStoreEvictionPolicy=
"LRU"
/>
<cache
name=
"users_roles_info"
eternal=
"false"
maxElementsInMemory=
"100
0
"
maxElementsOnDisk=
"0"
maxElementsInMemory=
"100"
maxElementsOnDisk=
"
100
0"
overflowToDisk=
"true"
diskPersistent=
"
fals
e"
timeToIdleSeconds=
"
28
800"
timeToLiveSeconds=
"3600
0
"
diskPersistent=
"
tru
e"
timeToIdleSeconds=
"
1
800"
timeToLiveSeconds=
"3600"
memoryStoreEvictionPolicy=
"LRU"
/>
<cache
name=
"users_permissions_info"
eternal=
"false"
maxElementsInMemory=
"100
0
"
maxElementsOnDisk=
"0"
maxElementsInMemory=
"100"
maxElementsOnDisk=
"
100
0"
overflowToDisk=
"true"
diskPersistent=
"
fals
e"
timeToIdleSeconds=
"
28
800"
timeToLiveSeconds=
"3600
0
"
diskPersistent=
"
tru
e"
timeToIdleSeconds=
"
1
800"
timeToLiveSeconds=
"3600"
memoryStoreEvictionPolicy=
"LRU"
/>
<cache
name=
"tokens_expire"
eternal=
"false"
maxElementsInMemory=
"100
0
"
maxElementsOnDisk=
"0"
maxElementsInMemory=
"100"
maxElementsOnDisk=
"
100
0"
overflowToDisk=
"true"
diskPersistent=
"
fals
e"
timeToIdleSeconds=
"
28
800"
timeToLiveSeconds=
"3600
0
"
diskPersistent=
"
tru
e"
timeToIdleSeconds=
"
1
800"
timeToLiveSeconds=
"3600"
memoryStoreEvictionPolicy=
"LRU"
/>
...
...
backend/src/main/resources/i18n/messages_en_US.properties
浏览文件 @
dc742d1b
...
...
@@ -241,8 +241,9 @@ i18n_union_field_exists=The same field can't in two dataset
i18n_cron_time_error
=
Start time can't greater then end time
i18n_auth_source_be_canceled
=
This Auth Resource Already Be Canceled
i18n_username_exists
=
ID is already exists
i18n_ds_name_exists
=
Datasource name
exists
i18n_ds_name_exists
=
Datasource name
used
i18n_sync_job_exists
=
There is already a synchronization task running, please try again later
i18n_datasource_check_fail
=
Invalid,please check config
i18n_not_find_user
=
Can not find user.
i18n_sql_not_empty
=
SQL can not be empty.
\ No newline at end of file
i18n_sql_not_empty
=
SQL can not be empty.
i18n_task_name_repeat
=
Name is used in same data set
\ No newline at end of file
backend/src/main/resources/i18n/messages_zh_CN.properties
浏览文件 @
dc742d1b
...
...
@@ -243,8 +243,9 @@ i18n_union_field_exists=两个数据集之间关联不能出现多次相同字
i18n_cron_time_error
=
开始时间不能大于结束时间
i18n_auth_source_be_canceled
=
当前资源授权权限已经被取消
i18n_username_exists
=
用户 ID 已存在
i18n_ds_name_exists
=
数据源名称已
存在
i18n_ds_name_exists
=
数据源名称已
被使用
i18n_sync_job_exists
=
已经有同步任务在运行,稍后重试
i18n_datasource_check_fail
=
校验失败,请检查配置信息
i18n_not_find_user
=
未找到用户
i18n_sql_not_empty
=
SQL 不能为空
\ No newline at end of file
i18n_sql_not_empty
=
SQL 不能为空
i18n_task_name_repeat
=
同一数据集下任务名称已被使用
\ No newline at end of file
backend/src/main/resources/i18n/messages_zh_TW.properties
浏览文件 @
dc742d1b
...
...
@@ -243,8 +243,9 @@ i18n_union_field_exists=兩個數據集之間關聯不能出現多次相同字
i18n_cron_time_error
=
開始時間不能大於結束時間
i18n_auth_source_be_canceled
=
當前資源授權權限已經被取消
i18n_username_exists
=
用戶ID已存在
i18n_ds_name_exists
=
數據源名稱已
存在
i18n_ds_name_exists
=
數據源名稱已
被使用
i18n_sync_job_exists
=
已經有同步任務在運行,稍後重試
i18n_datasource_check_fail
=
校驗失敗,請檢查配置信息
i18n_not_find_user
=
未找到用戶
i18n_sql_not_empty
=
SQL 不能為空
\ No newline at end of file
i18n_sql_not_empty
=
SQL 不能為空
i18n_task_name_repeat
=
同一數據集下任務名稱已被使用
\ No newline at end of file
frontend/src/views/dataset/data/UpdateInfo.vue
浏览文件 @
dc742d1b
...
...
@@ -380,7 +380,9 @@ export default {
this
.
calHeight
()
},
created
()
{
this
.
timer
=
setInterval
(
this
.
listTaskLog
,
5000
)
this
.
timer
=
setInterval
(()
=>
{
this
.
listTaskLog
(
false
)
},
5000
)
},
beforeDestroy
()
{
clearInterval
(
this
.
timer
)
...
...
@@ -461,10 +463,10 @@ export default {
post
(
'/dataset/table/incrementalConfig'
,
{
tableId
:
this
.
table
.
id
}).
then
(
response
=>
{
this
.
incrementalConfig
=
response
.
data
this
.
incrementalUpdateType
=
'incrementalAdd'
console
.
log
(
this
.
sql
)
;
console
.
log
(
this
.
sql
)
if
(
this
.
incrementalConfig
.
incrementalAdd
)
{
this
.
sql
=
this
.
incrementalConfig
.
incrementalAdd
}
else
{
}
else
{
this
.
sql
=
''
}
})
...
...
@@ -543,8 +545,8 @@ export default {
this
.
taskForm
.
cron
=
'0 0 * ? * * *'
}
},
listTaskLog
()
{
post
(
'/dataset/taskLog/list/'
+
this
.
page
.
currentPage
+
'/'
+
this
.
page
.
pageSize
,
{
tableId
:
this
.
table
.
id
}).
then
(
response
=>
{
listTaskLog
(
loading
=
true
)
{
post
(
'/dataset/taskLog/list/'
+
this
.
page
.
currentPage
+
'/'
+
this
.
page
.
pageSize
,
{
tableId
:
this
.
table
.
id
}
,
loading
).
then
(
response
=>
{
this
.
taskLogData
=
response
.
data
.
listObject
this
.
page
.
total
=
response
.
data
.
itemCount
})
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论