优化事件展示
This commit is contained in:
1 parent
0ec6cee36c
commit
2b626b067f
8 files changed
+38
-49
No files matched your search
+4
-3
@@ -258,9 +258,10 @@ func setupApi(app *orz.App, components *AppComponents) {
|
||||
adminApi.GET("/agents/:id/audit/results", components.AgentHandler.ListAuditResults)
|
||||
|
||||
// 防篡改管理(管理员功能)
|
||||
adminApi.GET("/agents/:id/tamper/config", components.TamperHandler.GetTamperConfig)
|
||||
adminApi.PUT("/agents/:id/tamper/config", components.TamperHandler.UpdateTamperConfig)
|
||||
adminApi.GET("/agents/:id/tamper/events", components.TamperHandler.GetTamperEvents)
|
||||
adminApi.GET("/agents/:id/tamper/config", components.TamperHandler.GetConfig)
|
||||
adminApi.PUT("/agents/:id/tamper/config", components.TamperHandler.UpdateConfig)
|
||||
adminApi.GET("/agents/:id/tamper/events", components.TamperHandler.ListEvents)
|
||||
adminApi.DELETE("/agents/:id/tamper/events", components.TamperHandler.DeleteEvents)
|
||||
|
||||
// SSH 登录监控管理(管理员功能)
|
||||
adminApi.GET("/agents/:id/ssh-login/config", components.SSHLoginHandler.GetConfig)
|
||||
|
||||
@@ -75,7 +75,7 @@ func (h *SSHLoginHandler) ListEvents(c echo.Context) error {
|
||||
agentID := c.Param("id")
|
||||
|
||||
// 获取分页参数
|
||||
pageReq := orz.GetPageRequest(c)
|
||||
pageReq := orz.GetPageRequest(c, "createdAt")
|
||||
builder := orz.NewPageBuilder(h.service.SSHLoginEventRepo.Repository).
|
||||
PageRequest(pageReq).
|
||||
Equal("agentId", agentID).
|
||||
|
||||
@@ -22,9 +22,9 @@ func NewTamperHandler(logger *zap.Logger, tamperService *service.TamperService)
|
||||
}
|
||||
}
|
||||
|
||||
// UpdateTamperConfig 更新探针的防篡改配置
|
||||
// UpdateConfig 更新探针的防篡改配置
|
||||
// POST /api/agents/:id/tamper/config
|
||||
func (h *TamperHandler) UpdateTamperConfig(c echo.Context) error {
|
||||
func (h *TamperHandler) UpdateConfig(c echo.Context) error {
|
||||
agentID := c.Param("id")
|
||||
|
||||
var req struct {
|
||||
@@ -47,9 +47,9 @@ func (h *TamperHandler) UpdateTamperConfig(c echo.Context) error {
|
||||
return c.JSON(http.StatusOK, orz.Map{})
|
||||
}
|
||||
|
||||
// GetTamperConfig 获取探针的防篡改配置
|
||||
// GetConfig 获取探针的防篡改配置
|
||||
// GET /api/agents/:id/tamper/config
|
||||
func (h *TamperHandler) GetTamperConfig(c echo.Context) error {
|
||||
func (h *TamperHandler) GetConfig(c echo.Context) error {
|
||||
agentID := c.Param("id")
|
||||
|
||||
config, err := h.tamperService.GetConfigByAgentID(c.Request().Context(), agentID)
|
||||
@@ -63,13 +63,13 @@ func (h *TamperHandler) GetTamperConfig(c echo.Context) error {
|
||||
return c.JSON(http.StatusOK, config)
|
||||
}
|
||||
|
||||
// GetTamperEvents 获取探针的防篡改事件
|
||||
// ListEvents 获取探针的防篡改事件
|
||||
// GET /api/agents/:id/tamper/events
|
||||
func (h *TamperHandler) GetTamperEvents(c echo.Context) error {
|
||||
func (h *TamperHandler) ListEvents(c echo.Context) error {
|
||||
agentID := c.Param("id")
|
||||
|
||||
// 获取分页参数
|
||||
pageReq := orz.GetPageRequest(c)
|
||||
pageReq := orz.GetPageRequest(c, "createdAt")
|
||||
builder := orz.NewPageBuilder(h.tamperService.TamperEventRepo.Repository).
|
||||
PageRequest(pageReq).
|
||||
Equal("agentId", agentID).
|
||||
@@ -85,3 +85,15 @@ func (h *TamperHandler) GetTamperEvents(c echo.Context) error {
|
||||
|
||||
return orz.Ok(c, page)
|
||||
}
|
||||
|
||||
func (h *TamperHandler) DeleteEvents(c echo.Context) error {
|
||||
agentID := c.Param("id")
|
||||
err := h.tamperService.DeleteEventsByAgentID(c.Request().Context(), agentID)
|
||||
if err != nil {
|
||||
h.logger.Error("删除防篡改事件失败", zap.Error(err), zap.String("agentId", agentID))
|
||||
return c.JSON(http.StatusInternalServerError, map[string]interface{}{
|
||||
"message": "删除事件失败",
|
||||
})
|
||||
}
|
||||
return c.JSON(http.StatusOK, orz.Map{})
|
||||
}
|
||||
@@ -282,3 +282,7 @@ func (s *TamperService) HandleConfigResult(ctx context.Context, agentID string,
|
||||
// 更新探针配置
|
||||
return s.agentRepo.UpdateById(ctx, &agentForUpdate)
|
||||
}
|
||||
|
||||
func (s *TamperService) DeleteEventsByAgentID(ctx context.Context, id string) error {
|
||||
return s.TamperEventRepo.DeleteEventsByAgentID(ctx, id)
|
||||
}
|
||||
@@ -152,6 +152,8 @@ const SSHLoginEvents: React.FC<SSHLoginEventsProps> = ({agentId}) => {
|
||||
username: params.username,
|
||||
ip: params.ip,
|
||||
status: params.status,
|
||||
sortField: 'createdAt',
|
||||
sortOrder: 'descend',
|
||||
});
|
||||
return {
|
||||
data: response.items || [],
|
||||
@@ -172,7 +174,6 @@ const SSHLoginEvents: React.FC<SSHLoginEventsProps> = ({agentId}) => {
|
||||
labelWidth: 'auto',
|
||||
}}
|
||||
pagination={{
|
||||
pageSize: 20,
|
||||
showSizeChanger: true,
|
||||
showTotal: (total) => `共 ${total} 条`,
|
||||
}}
|
||||
|
||||
@@ -123,6 +123,8 @@ const TamperProtectionEvents: React.FC<TamperProtectionEventsProps> = ({agentId}
|
||||
path: params.path,
|
||||
operation: params.operation,
|
||||
details: params.details,
|
||||
sortField: 'createdAt',
|
||||
sortOrder: 'descend',
|
||||
});
|
||||
return {
|
||||
data: response.data.items || [],
|
||||
@@ -143,7 +145,6 @@ const TamperProtectionEvents: React.FC<TamperProtectionEventsProps> = ({agentId}
|
||||
labelWidth: 'auto',
|
||||
}}
|
||||
pagination={{
|
||||
pageSize: 20,
|
||||
showSizeChanger: true,
|
||||
showTotal: (total) => `共 ${total} 条`,
|
||||
}}
|
||||
|
||||
+4
-21
@@ -8,6 +8,7 @@ import type {
|
||||
UpdateSSHLoginConfigRequest,
|
||||
UpdateTrafficConfigRequest
|
||||
} from '@/types';
|
||||
import qs from "qs";
|
||||
|
||||
export interface ListAgentsResponse {
|
||||
items: Agent[];
|
||||
@@ -553,27 +554,9 @@ export const updateSSHLoginConfig = async (agentId: string, data: UpdateSSHLogin
|
||||
};
|
||||
|
||||
// 获取 SSH 登录事件列表
|
||||
export interface GetSSHLoginEventsParams {
|
||||
pageIndex?: number;
|
||||
pageSize?: number;
|
||||
username?: string;
|
||||
ip?: string;
|
||||
status?: string;
|
||||
startTime?: number;
|
||||
endTime?: number;
|
||||
}
|
||||
|
||||
export const getSSHLoginEvents = async (agentId: string, params?: GetSSHLoginEventsParams) => {
|
||||
const query = new URLSearchParams();
|
||||
if (params?.pageIndex) query.append('pageIndex', params.pageIndex.toString());
|
||||
if (params?.pageSize) query.append('pageSize', params.pageSize.toString());
|
||||
if (params?.username) query.append('username', params.username);
|
||||
if (params?.ip) query.append('ip', params.ip);
|
||||
if (params?.status) query.append('status', params.status);
|
||||
if (params?.startTime) query.append('startTime', params.startTime.toString());
|
||||
if (params?.endTime) query.append('endTime', params.endTime.toString());
|
||||
|
||||
const response = await get<{ items: SSHLoginEvent[]; total: number }>(`/admin/agents/${agentId}/ssh-login/events?${query.toString()}`);
|
||||
export const getSSHLoginEvents = async (agentId: string, params?: any) => {
|
||||
const query = qs.stringify(params);
|
||||
const response = await get<{ items: SSHLoginEvent[]; total: number }>(`/admin/agents/${agentId}/ssh-login/events?${query}`);
|
||||
return response.data;
|
||||
};
|
||||
|
||||
|
||||
+2
-15
@@ -56,21 +56,8 @@ export const updateTamperConfig = (agentId: string, enabled: boolean, paths: str
|
||||
};
|
||||
|
||||
// 获取防篡改事件
|
||||
export const getTamperEvents = (agentId: string, params?: {
|
||||
pageIndex?: number;
|
||||
pageSize?: number;
|
||||
path?: string;
|
||||
operation?: string;
|
||||
details?: string;
|
||||
}) => {
|
||||
const queryParams = {
|
||||
pageIndex: params?.pageIndex || 1,
|
||||
pageSize: params?.pageSize || 20,
|
||||
path: params?.path,
|
||||
operation: params?.operation,
|
||||
details: params?.details,
|
||||
};
|
||||
const paramStr = qs.stringify(queryParams, { skipNulls: true });
|
||||
export const getTamperEvents = (agentId: string, params?: any) => {
|
||||
const paramStr = qs.stringify(params);
|
||||
return request.get<PagedTamperEvents>(
|
||||
`/admin/agents/${agentId}/tamper/events?${paramStr}`,
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user