Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MaxKey单点登录官方(MaxKeyTop)
MaxKey
提交
ee9fb6f5
MaxKey
项目概览
MaxKey单点登录官方(MaxKeyTop)
/
MaxKey
9 个月 前同步成功
通知
75
Star
3
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
MaxKey
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ee9fb6f5
编写于
5月 29, 2021
作者:
MaxKey单点登录官方
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
History
上级
59c4e58a
变更
25
隐藏空白更改
内联
并排
Showing
25 changed file
with
561 addition
and
145 deletion
+561
-145
maxkey-persistence/src/main/java/org/maxkey/persistence/mapper/HistorySystemLogsMapper.java
...rg/maxkey/persistence/mapper/HistorySystemLogsMapper.java
+1
-1
maxkey-persistence/src/main/java/org/maxkey/persistence/service/HistorySystemLogsService.java
.../maxkey/persistence/service/HistorySystemLogsService.java
+6
-6
maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/highgo/HistorySystemLogsMapper.xml
...persistence/mapper/xml/highgo/HistorySystemLogsMapper.xml
+1
-1
maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/mysql/HistorySystemLogsMapper.xml
.../persistence/mapper/xml/mysql/HistorySystemLogsMapper.xml
+1
-1
maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/postgresql/HistorySystemLogsMapper.xml
...istence/mapper/xml/postgresql/HistorySystemLogsMapper.xml
+54
-54
maxkey-web-manage/src/main/java/org/maxkey/web/historys/contorller/LoginAppsHistoryController.java
...y/web/historys/contorller/LoginAppsHistoryController.java
+77
-0
maxkey-web-manage/src/main/java/org/maxkey/web/historys/contorller/LoginHistoryController.java
...axkey/web/historys/contorller/LoginHistoryController.java
+75
-0
maxkey-web-manage/src/main/java/org/maxkey/web/historys/contorller/SynchronizerHistoryController.java
...eb/historys/contorller/SynchronizerHistoryController.java
+78
-0
maxkey-web-manage/src/main/java/org/maxkey/web/historys/contorller/SystemLogsController.java
.../maxkey/web/historys/contorller/SystemLogsController.java
+79
-0
maxkey-web-manage/src/main/java/org/maxkey/web/historys/contorller/package-info.java
...java/org/maxkey/web/historys/contorller/package-info.java
+1
-0
maxkey-web-manage/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java
...n/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java
+5
-8
maxkey-web-manage/src/main/resources/templates/views/historys/loginAppsHistoryList.ftl
...sources/templates/views/historys/loginAppsHistoryList.ftl
+1
-1
maxkey-web-manage/src/main/resources/templates/views/historys/loginHistoryList.ftl
...n/resources/templates/views/historys/loginHistoryList.ftl
+1
-1
maxkey-web-manage/src/main/resources/templates/views/historys/synchronizerHistoryList.ftl
...rces/templates/views/historys/synchronizerHistoryList.ftl
+1
-1
maxkey-web-manage/src/main/resources/templates/views/historys/systemLogsList.ftl
...ain/resources/templates/views/historys/systemLogsList.ftl
+1
-1
maxkey-web-manage/src/main/resources/templates/views/layout/sidenav.ftl
...age/src/main/resources/templates/views/layout/sidenav.ftl
+4
-4
maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistoryLoginAppsController.java
...y/web/historys/contorller/HistoryLoginAppsController.java
+80
-0
maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistoryLoginController.java
...axkey/web/historys/contorller/HistoryLoginController.java
+8
-53
maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistorySystemLogsController.java
.../web/historys/contorller/HistorySystemLogsController.java
+76
-0
maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/package-info.java
...java/org/maxkey/web/historys/contorller/package-info.java
+1
-0
maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java
...n/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java
+3
-6
maxkey-web-maxkey/src/main/resources/templates/views/historys/loginAppsList.ftl
...main/resources/templates/views/historys/loginAppsList.ftl
+1
-1
maxkey-web-maxkey/src/main/resources/templates/views/historys/loginList.ftl
...src/main/resources/templates/views/historys/loginList.ftl
+1
-1
maxkey-web-maxkey/src/main/resources/templates/views/historys/systemLogsList.ftl
...ain/resources/templates/views/historys/systemLogsList.ftl
+1
-1
maxkey-web-maxkey/src/main/resources/templates/views/layout/nav_primary.ftl
...src/main/resources/templates/views/layout/nav_primary.ftl
+4
-4
未找到文件。
maxkey-persistence/src/main/java/org/maxkey/persistence/mapper/HistoryLogsMapper.java
→
maxkey-persistence/src/main/java/org/maxkey/persistence/mapper/History
System
LogsMapper.java
浏览文件 @
ee9fb6f5
...
...
@@ -27,7 +27,7 @@ import org.maxkey.entity.HistoryLogs;
* @author Crystal.sea
*
*/
public
interface
HistoryLogsMapper
extends
IJpaBaseMapper
<
HistoryLogs
>
{
public
interface
History
System
LogsMapper
extends
IJpaBaseMapper
<
HistoryLogs
>
{
}
maxkey-persistence/src/main/java/org/maxkey/persistence/service/HistoryLogsService.java
→
maxkey-persistence/src/main/java/org/maxkey/persistence/service/History
System
LogsService.java
浏览文件 @
ee9fb6f5
...
...
@@ -19,14 +19,14 @@ package org.maxkey.persistence.service;
import
org.apache.mybatis.jpa.persistence.JpaBaseService
;
import
org.maxkey.entity.HistoryLogs
;
import
org.maxkey.persistence.mapper.HistoryLogsMapper
;
import
org.maxkey.persistence.mapper.History
System
LogsMapper
;
import
org.springframework.stereotype.Repository
;
@Repository
public
class
HistoryLogsService
extends
JpaBaseService
<
HistoryLogs
>{
public
class
History
System
LogsService
extends
JpaBaseService
<
HistoryLogs
>{
public
HistoryLogsService
()
{
super
(
HistoryLogsMapper
.
class
);
public
History
System
LogsService
()
{
super
(
History
System
LogsMapper
.
class
);
}
...
...
@@ -34,8 +34,8 @@ public class HistoryLogsService extends JpaBaseService<HistoryLogs>{
* @see com.connsec.db.service.BaseService#getMapper()
*/
@Override
public
HistoryLogsMapper
getMapper
()
{
public
History
System
LogsMapper
getMapper
()
{
// TODO Auto-generated method stub
return
(
HistoryLogsMapper
)
super
.
getMapper
();
return
(
History
System
LogsMapper
)
super
.
getMapper
();
}
}
maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/highgo/HistoryLogsMapper.xml
→
maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/highgo/History
System
LogsMapper.xml
浏览文件 @
ee9fb6f5
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"org.maxkey.persistence.mapper.HistoryLogsMapper"
>
<mapper
namespace=
"org.maxkey.persistence.mapper.History
System
LogsMapper"
>
<sql
id=
"where_statement"
>
<if
test=
"id != null and id != ''"
>
...
...
maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/mysql/HistoryLogsMapper.xml
→
maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/mysql/History
System
LogsMapper.xml
浏览文件 @
ee9fb6f5
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"org.maxkey.persistence.mapper.HistoryLogsMapper"
>
<mapper
namespace=
"org.maxkey.persistence.mapper.History
System
LogsMapper"
>
<sql
id=
"where_statement"
>
<if
test=
"id != null and id != ''"
>
...
...
maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/postgresql/HistoryLogsMapper.xml
→
maxkey-persistence/src/main/resources/org/maxkey/persistence/mapper/xml/postgresql/History
System
LogsMapper.xml
浏览文件 @
ee9fb6f5
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"org.maxkey.persistence.mapper.History
LogsMapper"
>
<sql
id=
"where_statement"
>
<if
test=
"id != null and id != ''"
>
and id = #{id}
</if>
<if
test=
"serviceName != null and serviceName != '' "
>
and lower(servicename) like lower(concat('%',#{serviceName},'%'))
</if>
<if
test=
"message != null and message != '' "
>
and lower(message) like lower(concat('%',#{message},'%'))
</if>
<if
test=
"startDate != null and startDate != '' "
>
and createddate between #{startDate} and #{endDate}
</if>
<if
test=
"createdBy != null and createdBy != ''"
>
and createdby = #{createdBy}
</if>
<if
test=
"username != null and username != ''"
>
and lower(username) like lower(concat('%',#{username},'%'))
</if>
<if
test=
"messageType != null and messageType != ''"
>
and messagetype = #{messageType}
</if>
<if
test=
"operateType != null and operateType != ''"
>
and operatetype = #{operateType}
</if>
</sql>
<select
id=
"queryPageResults"
parameterType=
"HistoryLogs"
resultType=
"HistoryLogs"
>
select
id,
tid,
tname,
servicename ,
code,
message ,
content,
operatetype,
messagetype,
username,
createddate,
createdby
from mxk_history_logs
where 1 = 1
<include
refid=
"where_statement"
/>
order by createddate desc
</select>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"org.maxkey.persistence.mapper.History
SystemLogsMapper"
>
<sql
id=
"where_statement"
>
<if
test=
"id != null and id != ''"
>
and id = #{id}
</if>
<if
test=
"serviceName != null and serviceName != '' "
>
and lower(servicename) like lower(concat('%',#{serviceName},'%'))
</if>
<if
test=
"message != null and message != '' "
>
and lower(message) like lower(concat('%',#{message},'%'))
</if>
<if
test=
"startDate != null and startDate != '' "
>
and createddate between #{startDate} and #{endDate}
</if>
<if
test=
"createdBy != null and createdBy != ''"
>
and createdby = #{createdBy}
</if>
<if
test=
"username != null and username != ''"
>
and lower(username) like lower(concat('%',#{username},'%'))
</if>
<if
test=
"messageType != null and messageType != ''"
>
and messagetype = #{messageType}
</if>
<if
test=
"operateType != null and operateType != ''"
>
and operatetype = #{operateType}
</if>
</sql>
<select
id=
"queryPageResults"
parameterType=
"HistoryLogs"
resultType=
"HistoryLogs"
>
select
id,
tid,
tname,
servicename ,
code,
message ,
content,
operatetype,
messagetype,
username,
createddate,
createdby
from mxk_history_logs
where 1 = 1
<include
refid=
"where_statement"
/>
order by createddate desc
</select>
</mapper>
\ No newline at end of file
maxkey-web-manage/src/main/java/org/maxkey/web/historys/contorller/LoginAppsHistoryController.java
0 → 100644
浏览文件 @
ee9fb6f5
/*
* Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.maxkey.web.historys.contorller
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
org.apache.mybatis.jpa.persistence.JpaPageResults
;
import
org.maxkey.entity.HistoryLoginApps
;
import
org.maxkey.persistence.service.HistoryLoginAppsService
;
import
org.maxkey.util.DateUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.propertyeditors.CustomDateEditor
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.WebDataBinder
;
import
org.springframework.web.bind.annotation.InitBinder
;
import
org.springframework.web.bind.annotation.ModelAttribute
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
/**
* 单点登录日志查询
*
* @author Crystal.sea
*
*/
@Controller
@RequestMapping
(
value
={
"/historys"
})
public
class
LoginAppsHistoryController
{
final
static
Logger
_logger
=
LoggerFactory
.
getLogger
(
LoginAppsHistoryController
.
class
);
@Autowired
protected
HistoryLoginAppsService
historyLoginAppsService
;
@RequestMapping
(
value
={
"/loginAppsHistoryList"
})
public
String
loginAppsHistoryList
(){
return
"historys/loginAppsHistoryList"
;
}
/**
* @param loginAppsHistory
* @return
*/
@RequestMapping
(
value
={
"/loginAppsHistoryList/grid"
})
@ResponseBody
public
JpaPageResults
<
HistoryLoginApps
>
loginAppsHistoryGrid
(
@ModelAttribute
(
"historyLoginApp"
)
HistoryLoginApps
historyLoginApp
){
_logger
.
debug
(
"historys/loginAppsHistory/datagrid/ "
+
historyLoginApp
);
historyLoginApp
.
setId
(
null
);
return
historyLoginAppsService
.
queryPageResults
(
historyLoginApp
);
}
@InitBinder
public
void
initBinder
(
WebDataBinder
binder
)
{
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
DateUtils
.
FORMAT_DATE_HH_MM_SS
);
dateFormat
.
setLenient
(
false
);
binder
.
registerCustomEditor
(
Date
.
class
,
new
CustomDateEditor
(
dateFormat
,
true
));
}
}
maxkey-web-manage/src/main/java/org/maxkey/web/historys/contorller/LoginHistoryController.java
0 → 100644
浏览文件 @
ee9fb6f5
/*
* Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.maxkey.web.historys.contorller
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
org.apache.mybatis.jpa.persistence.JpaPageResults
;
import
org.maxkey.entity.HistoryLogin
;
import
org.maxkey.persistence.service.HistoryLoginService
;
import
org.maxkey.util.DateUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.propertyeditors.CustomDateEditor
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.WebDataBinder
;
import
org.springframework.web.bind.annotation.InitBinder
;
import
org.springframework.web.bind.annotation.ModelAttribute
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
/**
* 登录日志查询
*
* @author Crystal.sea
*
*/
@Controller
@RequestMapping
(
value
={
"/historys"
})
public
class
LoginHistoryController
{
final
static
Logger
_logger
=
LoggerFactory
.
getLogger
(
LoginHistoryController
.
class
);
@Autowired
HistoryLoginService
loginHistoryService
;
@RequestMapping
(
value
={
"/loginHistoryList"
})
public
String
loginHistoryList
(){
return
"historys/loginHistoryList"
;
}
/**
* @param HistoryLogin
* @return
*/
@RequestMapping
(
value
={
"/loginHistoryList/grid"
})
@ResponseBody
public
JpaPageResults
<
HistoryLogin
>
logAuthsGrid
(
@ModelAttribute
(
"historyLogin"
)
HistoryLogin
historyLogin
){
_logger
.
debug
(
"historys/loginHistory/datagrid/ "
+
historyLogin
);
return
loginHistoryService
.
queryPageResults
(
historyLogin
);
}
@InitBinder
public
void
initBinder
(
WebDataBinder
binder
)
{
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
DateUtils
.
FORMAT_DATE_HH_MM_SS
);
dateFormat
.
setLenient
(
false
);
binder
.
registerCustomEditor
(
Date
.
class
,
new
CustomDateEditor
(
dateFormat
,
true
));
}
}
maxkey-web-manage/src/main/java/org/maxkey/web/
contorller/Logs
Controller.java
→
maxkey-web-manage/src/main/java/org/maxkey/web/
historys/contorller/SynchronizerHistory
Controller.java
浏览文件 @
ee9fb6f5
...
...
@@ -15,19 +15,12 @@
*/
package
org.maxkey.web.contorller
;
package
org.maxkey.web.
historys.
contorller
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
org.apache.mybatis.jpa.persistence.JpaPageResults
;
import
org.maxkey.entity.HistoryLogin
;
import
org.maxkey.entity.HistoryLoginApps
;
import
org.maxkey.entity.HistoryLogs
;
import
org.maxkey.entity.HistorySynchronizer
;
import
org.maxkey.persistence.service.HistoryLoginAppsService
;
import
org.maxkey.persistence.service.HistoryLoginService
;
import
org.maxkey.persistence.service.HistoryLogsService
;
import
org.maxkey.persistence.service.HistorySynchronizerService
;
import
org.maxkey.util.DateUtils
;
import
org.slf4j.Logger
;
...
...
@@ -43,107 +36,38 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.ResponseBody
;
/**
*
登录日志和操作
日志查询
*
同步器
日志查询
*
* @author Crystal.sea
*
*/
@Controller
@RequestMapping
(
value
={
"/logs"
})
public
class
LogsController
{
final
static
Logger
_logger
=
LoggerFactory
.
getLogger
(
LogsController
.
class
);
@Autowired
HistoryLoginService
loginHistoryService
;
@Autowired
protected
HistoryLoginAppsService
loginAppsHistoryService
;
@Autowired
HistoryLogsService
logsService
;
@RequestMapping
(
value
={
"/historys"
})
public
class
SynchronizerHistoryController
{
final
static
Logger
_logger
=
LoggerFactory
.
getLogger
(
SynchronizerHistoryController
.
class
);
@Autowired
@Qualifier
(
"historySynchronizerService"
)
HistorySynchronizerService
historySynchronizerService
;
/**
* 查询操作日志
* @param logs
* @return
*/
@RequestMapping
(
value
={
"/grid"
})
@ResponseBody
public
JpaPageResults
<
HistoryLogs
>
logsDataGrid
(
@ModelAttribute
(
"logs"
)
HistoryLogs
logs
){
_logger
.
debug
(
"logs/datagrid/ logsGrid() "
+
logs
);
return
logsService
.
queryPageResults
(
logs
);
}
@RequestMapping
(
value
={
"/list"
})
public
String
List
(){
return
"logs/logsList"
;
}
@RequestMapping
(
value
={
"/loginHistoryList"
})
public
String
loginHistoryList
(){
return
"logs/loginHistoryList"
;
}
/**
* @param HistoryLogin
* @return
*/
@RequestMapping
(
value
={
"/loginHistory/grid"
})
@ResponseBody
public
JpaPageResults
<
HistoryLogin
>
logAuthsGrid
(
@ModelAttribute
(
"loginHistory"
)
HistoryLogin
loginHistory
){
_logger
.
debug
(
"logs/loginHistory/datagrid/ "
+
loginHistory
);
return
loginHistoryService
.
queryPageResults
(
loginHistory
);
}
@RequestMapping
(
value
={
"/loginAppsHistoryList"
})
public
String
loginAppsHistoryList
(){
return
"logs/loginAppsHistoryList"
;
}
/**
* @param loginAppsHistory
* @return
*/
@RequestMapping
(
value
={
"/loginAppsHistory/grid"
})
@ResponseBody
public
JpaPageResults
<
HistoryLoginApps
>
loginAppsHistoryGrid
(
@ModelAttribute
(
"loginAppsHistory"
)
HistoryLoginApps
loginAppsHistory
){
_logger
.
debug
(
"logs/loginAppsHistory/datagrid/ "
+
loginAppsHistory
);
loginAppsHistory
.
setId
(
null
);
return
loginAppsHistoryService
.
queryPageResults
(
loginAppsHistory
);
}
@RequestMapping
(
value
={
"/historySynchronizerList"
})
@RequestMapping
(
value
={
"/synchronizerHistoryList"
})
public
String
historySynchronizerList
(){
return
"
logs/historySynchronizer
List"
;
return
"
historys/synchronizerHistory
List"
;
}
/**
* @param historySynchronizer
* @return
*/
@RequestMapping
(
value
={
"/
historySynchronizer
/grid"
})
@RequestMapping
(
value
={
"/
synchronizerHistoryList
/grid"
})
@ResponseBody
public
JpaPageResults
<
HistorySynchronizer
>
historySynchronizerGrid
(
@ModelAttribute
(
"historySynchronizer"
)
HistorySynchronizer
historySynchronizer
){
_logger
.
debug
(
"
logs/historySynchronizer
/grid/ "
+
historySynchronizer
);
_logger
.
debug
(
"
historys/synchronizerHistory
/grid/ "
+
historySynchronizer
);
return
historySynchronizerService
.
queryPageResults
(
historySynchronizer
);
}
@RequestMapping
(
value
={
"/provisioningEventList"
})
public
String
provisioningEntryList
(){
return
"logs/provisioningEventList"
;
}
@InitBinder
public
void
initBinder
(
WebDataBinder
binder
)
{
...
...
maxkey-web-manage/src/main/java/org/maxkey/web/historys/contorller/SystemLogsController.java
0 → 100644
浏览文件 @
ee9fb6f5
/*
* Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.maxkey.web.historys.contorller
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
org.apache.mybatis.jpa.persistence.JpaPageResults
;
import
org.maxkey.entity.HistoryLogs
;
import
org.maxkey.persistence.service.HistorySystemLogsService
;
import
org.maxkey.util.DateUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.propertyeditors.CustomDateEditor
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.WebDataBinder
;
import
org.springframework.web.bind.annotation.InitBinder
;
import
org.springframework.web.bind.annotation.ModelAttribute
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
/**
* 系统操作日志查询
*
* @author Crystal.sea
*
*/
@Controller
@RequestMapping
(
value
={
"/historys"
})
public
class
SystemLogsController
{
final
static
Logger
_logger
=
LoggerFactory
.
getLogger
(
SystemLogsController
.
class
);
@Autowired
HistorySystemLogsService
historySystemLogsService
;
@RequestMapping
(
value
={
"/systemLogsList"
})
public
String
List
(){
return
"historys/systemLogsList"
;
}
/**
* 查询操作日志
* @param logs
* @return
*/
@RequestMapping
(
value
={
"/systemLogsList/grid"
})
@ResponseBody
public
JpaPageResults
<
HistoryLogs
>
logsDataGrid
(
@ModelAttribute
(
"historyLog"
)
HistoryLogs
historyLog
){
_logger
.
debug
(
"historys/historyLog/ logsGrid() "
+
historyLog
);
return
historySystemLogsService
.
queryPageResults
(
historyLog
);
}
@InitBinder
public
void
initBinder
(
WebDataBinder
binder
)
{
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
DateUtils
.
FORMAT_DATE_HH_MM_SS
);
dateFormat
.
setLenient
(
false
);
binder
.
registerCustomEditor
(
Date
.
class
,
new
CustomDateEditor
(
dateFormat
,
true
));
}
}
maxkey-web-manage/src/main/java/org/maxkey/web/historys/contorller/package-info.java
0 → 100644
浏览文件 @
ee9fb6f5
package
org.maxkey.web.historys.contorller
;
\ No newline at end of file
maxkey-web-manage/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java
浏览文件 @
ee9fb6f5
...
...
@@ -19,10 +19,9 @@ package org.maxkey.web.interceptor;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.maxkey.entity.HistoryLogs
;
import
org.maxkey.entity.UserInfo
;
import
org.maxkey.persistence.service.HistoryLogsService
;
import
org.maxkey.persistence.service.History
System
LogsService
;
import
org.maxkey.util.JsonUtils
;
import
org.maxkey.web.WebContext
;
import
org.maxkey.web.message.Message
;
...
...
@@ -30,7 +29,6 @@ import org.maxkey.web.message.MessageScope;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.servlet.AsyncHandlerInterceptor
;
import
org.springframework.web.servlet.ModelAndView
;
...
...
@@ -49,8 +47,7 @@ public class HistoryLogsAdapter implements AsyncHandlerInterceptor {
private
static
final
Logger
_logger
=
LoggerFactory
.
getLogger
(
HistoryLogsAdapter
.
class
);
@Autowired
@Qualifier
(
"historyLogsService"
)
private
HistoryLogsService
historyLogsService
;
private
HistorySystemLogsService
historySystemLogsService
;
// after the handler is executed
@Override
...
...
@@ -61,7 +58,7 @@ public class HistoryLogsAdapter implements AsyncHandlerInterceptor {
if
(
message
.
getMessageScope
()
==
MessageScope
.
DB
||
message
.
getMessageScope
()
==
MessageScope
.
DB_CLIENT
)
{
//判断message类型
UserInfo
userInfo
=
WebContext
.
getUserInfo
();
//取得当前用户信息
//创建日志记录
HistoryLogs
logs
=
new
HistoryLogs
(
HistoryLogs
historyLog
=
new
HistoryLogs
(
message
.
getServiceName
(),
message
.
getCode
(),
message
.
getMessage
(),
...
...
@@ -72,8 +69,8 @@ public class HistoryLogsAdapter implements AsyncHandlerInterceptor {
userInfo
==
null
?
null
:
userInfo
.
getUsername
(),
""
);
_logger
.
debug
(
"insert db logs content : "
+
logs
);
history
LogsService
.
insert
(
logs
);
//日志插入数据库
_logger
.
debug
(
"insert db logs content : "
+
historyLog
);
history
SystemLogsService
.
insert
(
historyLog
);
//日志插入数据库
if
(
message
.
getMessageScope
()
==
MessageScope
.
DB
)
{
//message类型仅插入数据库
WebContext
.
clearMessage
();
//清除message
}
...
...
maxkey-web-manage/src/main/resources/templates/views/
log
s/loginAppsHistoryList.ftl
→
maxkey-web-manage/src/main/resources/templates/views/
history
s/loginAppsHistoryList.ftl
浏览文件 @
ee9fb6f5
...
...
@@ -94,7 +94,7 @@
</table>
</form>
</div>
<table
data-url=
"<@base />/
logs/loginAppsHistory
/grid"
<table
data-url=
"<@base />/
historys/loginAppsHistoryList
/grid"
id=
"datagrid"
data-toggle=
"table"
data-classes=
"table table-bordered table-hover table-striped"
...
...
maxkey-web-manage/src/main/resources/templates/views/
log
s/loginHistoryList.ftl
→
maxkey-web-manage/src/main/resources/templates/views/
history
s/loginHistoryList.ftl
浏览文件 @
ee9fb6f5
...
...
@@ -94,7 +94,7 @@
</table>
</form>
</div>
<table
data-url=
"<@base />/
logs/loginHistory
/grid"
<table
data-url=
"<@base />/
historys/loginHistoryList
/grid"
id=
"datagrid"
data-toggle=
"table"
data-classes=
"table table-bordered table-hover table-striped"
...
...
maxkey-web-manage/src/main/resources/templates/views/
logs/historySynchronizer
List.ftl
→
maxkey-web-manage/src/main/resources/templates/views/
historys/synchronizerHistory
List.ftl
浏览文件 @
ee9fb6f5
...
...
@@ -94,7 +94,7 @@
</table>
</form>
</div>
<table
data-url=
"<@base />/
logs/historySynchronizer
/grid"
<table
data-url=
"<@base />/
historys/synchronizerHistoryList
/grid"
id=
"datagrid"
data-toggle=
"table"
data-classes=
"table table-bordered table-hover table-striped"
...
...
maxkey-web-manage/src/main/resources/templates/views/
logs/l
ogsList.ftl
→
maxkey-web-manage/src/main/resources/templates/views/
historys/systemL
ogsList.ftl
浏览文件 @
ee9fb6f5
...
...
@@ -94,7 +94,7 @@
</table>
</form>
</div>
<table
data-url=
"<@base />/
logs
/grid"
<table
data-url=
"<@base />/
historys/systemLogsList
/grid"
id=
"datagrid"
data-toggle=
"table"
data-classes=
"table table-bordered table-hover table-striped"
...
...
maxkey-web-manage/src/main/resources/templates/views/layout/sidenav.ftl
浏览文件 @
ee9fb6f5
...
...
@@ -130,25 +130,25 @@
</a>
<ul>
<li>
<a class="side-nav-menu" href="<@base />/
log
s/loginHistoryList/">
<a class="side-nav-menu" href="<@base />/
history
s/loginHistoryList/">
<@locale code="navs.audit.login"/>
<span class="fa fa-fw fa-eraser"></span>
</a>
</li>
<li>
<a class="side-nav-menu" href="<@base />/
log
s/loginAppsHistoryList/">
<a class="side-nav-menu" href="<@base />/
history
s/loginAppsHistoryList/">
<@locale code="navs.audit.loginapps"/>
<span class="fa fa-fw fa-eraser"></span>
</a>
</li>
<li>
<a class="side-nav-menu" href="<@base />/
logs/historySynchronizer
List/">
<a class="side-nav-menu" href="<@base />/
historys/synchronizerHistory
List/">
<@locale code="navs.audit.synchronizer"/>
<span class="fa fa-fw fa-eraser"></span>
</a>
</li>
<li>
<a class="side-nav-menu" href="<@base />/
logs/l
ist/">
<a class="side-nav-menu" href="<@base />/
historys/systemLogsL
ist/">
<@locale code="navs.audit.operate"/>
<span class="fa fa-fw fa-eraser"></span>
</a>
...
...
maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistoryLoginAppsController.java
0 → 100644
浏览文件 @
ee9fb6f5
/*
* Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.maxkey.web.historys.contorller
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
org.apache.mybatis.jpa.persistence.JpaPageResults
;
import
org.maxkey.entity.HistoryLoginApps
;
import
org.maxkey.persistence.service.HistoryLoginAppsService
;
import
org.maxkey.util.DateUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.propertyeditors.CustomDateEditor
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.WebDataBinder
;
import
org.springframework.web.bind.annotation.InitBinder
;
import
org.springframework.web.bind.annotation.ModelAttribute
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
/**
* 单点登录日志查询.
*
* @author Crystal.sea
*
*/
@Controller
@RequestMapping
(
value
=
{
"/historys"
})
public
class
HistoryLoginAppsController
{
static
final
Logger
_logger
=
LoggerFactory
.
getLogger
(
HistoryLoginAppsController
.
class
);
@Autowired
protected
HistoryLoginAppsService
historyLoginAppsService
;
@RequestMapping
(
value
=
{
"/loginAppsList"
})
public
String
loginAppHistoryList
()
{
return
"historys/loginAppsList"
;
}
/**
* 查询单点登录日志.
*
* @param logsSso
* @return
*/
@RequestMapping
(
value
=
{
"/loginAppsList/grid"
})
@ResponseBody
public
JpaPageResults
<
HistoryLoginApps
>
logsSsoGrid
(
@ModelAttribute
(
"historyLoginApps"
)
HistoryLoginApps
historyLoginApps
)
{
_logger
.
debug
(
"history/loginApps/grid/ logsGrid() "
+
historyLoginApps
);
historyLoginApps
.
setId
(
null
);
return
historyLoginAppsService
.
queryPageResults
(
historyLoginApps
);
}
@InitBinder
public
void
initBinder
(
WebDataBinder
binder
)
{
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
DateUtils
.
FORMAT_DATE_HH_MM_SS
);
dateFormat
.
setLenient
(
false
);
binder
.
registerCustomEditor
(
Date
.
class
,
new
CustomDateEditor
(
dateFormat
,
true
));
}
}
maxkey-web-maxkey/src/main/java/org/maxkey/web/
contorller/Historys
Controller.java
→
maxkey-web-maxkey/src/main/java/org/maxkey/web/
historys/contorller/HistoryLogin
Controller.java
浏览文件 @
ee9fb6f5
...
...
@@ -15,7 +15,7 @@
*/
package
org.maxkey.web.contorller
;
package
org.maxkey.web.
historys.
contorller
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
...
...
@@ -25,7 +25,7 @@ import org.maxkey.entity.HistoryLoginApps;
import
org.maxkey.entity.HistoryLogs
;
import
org.maxkey.persistence.service.HistoryLoginAppsService
;
import
org.maxkey.persistence.service.HistoryLoginService
;
import
org.maxkey.persistence.service.HistoryLogsService
;
import
org.maxkey.persistence.service.History
System
LogsService
;
import
org.maxkey.util.DateUtils
;
import
org.maxkey.web.WebContext
;
import
org.slf4j.Logger
;
...
...
@@ -40,7 +40,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.ResponseBody
;
/**
* 登录日志
和操作日志
查询.
* 登录日志查询.
*
* @author Crystal.sea
*
...
...
@@ -48,37 +48,13 @@ import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping
(
value
=
{
"/historys"
})
public
class
History
s
Controller
{
static
final
Logger
_logger
=
LoggerFactory
.
getLogger
(
History
s
Controller
.
class
);
public
class
History
Login
Controller
{
static
final
Logger
_logger
=
LoggerFactory
.
getLogger
(
History
Login
Controller
.
class
);
@Autowired
HistoryLoginService
historyLoginService
;
@Autowired
protected
HistoryLoginAppsService
historyLoginAppsService
;
@Autowired
HistoryLogsService
historyLogsService
;
@RequestMapping
(
value
=
{
"/logs"
})
public
String
List
()
{
return
"historys/logsList"
;
}
/**
* 查询操作日志.
*
* @param logs
* @return
*/
@RequestMapping
(
value
=
{
"/logs/grid"
})
@ResponseBody
public
JpaPageResults
<
HistoryLogs
>
logsDataGrid
(
@ModelAttribute
(
"historyLogs"
)
HistoryLogs
historyLogs
)
{
_logger
.
debug
(
"history/logs/grid/ logsGrid() "
+
historyLogs
);
return
historyLogsService
.
queryPageResults
(
historyLogs
);
}
@RequestMapping
(
value
=
{
"/login"
})
@RequestMapping
(
value
=
{
"/loginList"
})
public
String
authList
()
{
return
"historys/loginList"
;
}
...
...
@@ -89,7 +65,7 @@ public class HistorysController {
* @param logsAuth
* @return
*/
@RequestMapping
(
value
=
{
"/login/grid"
})
@RequestMapping
(
value
=
{
"/login
List
/grid"
})
@ResponseBody
public
JpaPageResults
<
HistoryLogin
>
logAuthsGrid
(
@ModelAttribute
(
"historyLogin"
)
HistoryLogin
historyLogin
)
{
_logger
.
debug
(
"history/login/grid/ logsGrid() "
+
historyLogin
);
...
...
@@ -97,27 +73,6 @@ public class HistorysController {
return
historyLoginService
.
queryPageResults
(
historyLogin
);
}
@RequestMapping
(
value
=
{
"/loginApps"
})
public
String
loginAppHistoryList
()
{
return
"historys/loginAppsList"
;
}
/**
* 查询单点登录日志.
*
* @param logsSso
* @return
*/
@RequestMapping
(
value
=
{
"/loginApps/grid"
})
@ResponseBody
public
JpaPageResults
<
HistoryLoginApps
>
logsSsoGrid
(
@ModelAttribute
(
"historyLoginApps"
)
HistoryLoginApps
historyLoginApps
)
{
_logger
.
debug
(
"history/loginApps/grid/ logsGrid() "
+
historyLoginApps
);
historyLoginApps
.
setId
(
null
);
return
historyLoginAppsService
.
queryPageResults
(
historyLoginApps
);
}
@InitBinder
public
void
initBinder
(
WebDataBinder
binder
)
{
...
...
maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/HistorySystemLogsController.java
0 → 100644
浏览文件 @
ee9fb6f5
/*
* Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.maxkey.web.historys.contorller
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
org.apache.mybatis.jpa.persistence.JpaPageResults
;
import
org.maxkey.entity.HistoryLogs
;
import
org.maxkey.persistence.service.HistorySystemLogsService
;
import
org.maxkey.util.DateUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.propertyeditors.CustomDateEditor
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.WebDataBinder
;
import
org.springframework.web.bind.annotation.InitBinder
;
import
org.springframework.web.bind.annotation.ModelAttribute
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
/**
* 操作日志查询.
*
* @author Crystal.sea
*
*/
@Controller
@RequestMapping
(
value
=
{
"/historys"
})
public
class
HistorySystemLogsController
{
static
final
Logger
_logger
=
LoggerFactory
.
getLogger
(
HistorySystemLogsController
.
class
);
@Autowired
HistorySystemLogsService
historySystemLogsService
;
@RequestMapping
(
value
=
{
"/systemLogsList"
})
public
String
List
()
{
return
"historys/systemLogsList"
;
}
/**
* 查询操作日志.
*
* @param logs
* @return
*/
@RequestMapping
(
value
=
{
"/systemLogsList/grid"
})
@ResponseBody
public
JpaPageResults
<
HistoryLogs
>
logsDataGrid
(
@ModelAttribute
(
"historyLogs"
)
HistoryLogs
historyLogs
)
{
_logger
.
debug
(
"history/systemLogs/grid/ systemLogs() "
+
historyLogs
);
return
historySystemLogsService
.
queryPageResults
(
historyLogs
);
}
@InitBinder
public
void
initBinder
(
WebDataBinder
binder
)
{
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
DateUtils
.
FORMAT_DATE_HH_MM_SS
);
dateFormat
.
setLenient
(
false
);
binder
.
registerCustomEditor
(
Date
.
class
,
new
CustomDateEditor
(
dateFormat
,
true
));
}
}
maxkey-web-maxkey/src/main/java/org/maxkey/web/historys/contorller/package-info.java
0 → 100644
浏览文件 @
ee9fb6f5
package
org.maxkey.web.historys.contorller
;
\ No newline at end of file
maxkey-web-maxkey/src/main/java/org/maxkey/web/interceptor/HistoryLogsAdapter.java
浏览文件 @
ee9fb6f5
...
...
@@ -19,10 +19,9 @@ package org.maxkey.web.interceptor;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.maxkey.entity.HistoryLogs
;
import
org.maxkey.entity.UserInfo
;
import
org.maxkey.persistence.service.HistoryLogsService
;
import
org.maxkey.persistence.service.History
System
LogsService
;
import
org.maxkey.util.JsonUtils
;
import
org.maxkey.web.WebContext
;
import
org.maxkey.web.message.Message
;
...
...
@@ -30,7 +29,6 @@ import org.maxkey.web.message.MessageScope;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.servlet.AsyncHandlerInterceptor
;
import
org.springframework.web.servlet.ModelAndView
;
...
...
@@ -48,8 +46,7 @@ public class HistoryLogsAdapter implements AsyncHandlerInterceptor {
private
static
final
Logger
_logger
=
LoggerFactory
.
getLogger
(
HistoryLogsAdapter
.
class
);
@Autowired
@Qualifier
(
"historyLogsService"
)
private
HistoryLogsService
historyLogsService
;
private
HistorySystemLogsService
historySystemLogsService
;
/**
* after the handler is executed.
...
...
@@ -79,7 +76,7 @@ public class HistoryLogsAdapter implements AsyncHandlerInterceptor {
""
);
_logger
.
debug
(
"insert db historyLogs content : "
+
historyLogs
);
historyLogsService
.
insert
(
historyLogs
);
//日志插入数据库
history
System
LogsService
.
insert
(
historyLogs
);
//日志插入数据库
//message类型仅插入数据库
if
(
message
.
getMessageScope
()
==
MessageScope
.
DB
)
{
WebContext
.
clearMessage
();
//清除message
...
...
maxkey-web-maxkey/src/main/resources/templates/views/historys/loginAppsList.ftl
浏览文件 @
ee9fb6f5
...
...
@@ -50,7 +50,7 @@
</div>
<div
class=
"mainwrap"
id=
"main"
>
<table
data-url=
"<@base />/historys/loginApps/grid"
<table
data-url=
"<@base />/historys/loginApps
List
/grid"
id=
"datagrid"
data-toggle=
"table"
data-classes=
"table table-bordered table-hover table-striped"
...
...
maxkey-web-maxkey/src/main/resources/templates/views/historys/loginList.ftl
浏览文件 @
ee9fb6f5
...
...
@@ -50,7 +50,7 @@
<div
class=
"mainwrap"
id=
"main"
>
<table
data-url=
"<@base />/historys/login/grid"
<table
data-url=
"<@base />/historys/login
List
/grid"
id=
"datagrid"
data-toggle=
"table"
data-classes=
"table table-bordered table-hover table-striped"
...
...
maxkey-web-maxkey/src/main/resources/templates/views/historys/
l
ogsList.ftl
→
maxkey-web-maxkey/src/main/resources/templates/views/historys/
systemL
ogsList.ftl
浏览文件 @
ee9fb6f5
...
...
@@ -35,7 +35,7 @@
<div
class=
"mainwrap"
id=
"main"
>
<table
data-url=
"<@base />/historys/
logs
/grid"
<table
data-url=
"<@base />/historys/
systemLogsList
/grid"
id=
"datagrid"
data-toggle=
"table"
data-classes=
"table table-bordered table-hover table-striped"
...
...
maxkey-web-maxkey/src/main/resources/templates/views/layout/nav_primary.ftl
浏览文件 @
ee9fb6f5
...
...
@@ -49,24 +49,24 @@
</li>
<!--日志审计-->
<li id="nav_primay_15" class="nav_primay_level primaryleft" xpath="">
<a href="<@base/>/historys/login"><@locale code="navs.audit"/></a>
<a href="<@base/>/historys/login
List
"><@locale code="navs.audit"/></a>
<div id="nav_child_1501" class="nav_second_child">
<ul>
<!--登录日志-->
<li id="nav_second_1501" class="nav_second_level">
<a href="<@base/>/historys/login"><@locale code="navs.audit.login"/></a>
<a href="<@base/>/historys/login
List
"><@locale code="navs.audit.login"/></a>
</li>
</ul>
<ul>
<!--访问日志-->
<li id="nav_second_1502" class="nav_second_level">
<a href="<@base/>/historys/loginApps"><@locale code="navs.audit.signon"/></a>
<a href="<@base/>/historys/loginApps
List
"><@locale code="navs.audit.signon"/></a>
</li>
</ul>
<ul>
<!--操作日志-->
<li id="nav_second_1503" class="nav_second_level">
<a href="<@base/>/historys/
logs
"><@locale code="navs.audit.operation"/></a>
<a href="<@base/>/historys/
systemLogsList
"><@locale code="navs.audit.operation"/></a>
</li>
</ul>
</div>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录