mirror of
https://gitee.com/270580156/weiyu.git
synced 2026-05-19 21:57:49 +00:00
update
This commit is contained in:
@@ -1,97 +0,0 @@
|
||||
/*
|
||||
* @Author: jackning 270580156@qq.com
|
||||
* @Date: 2024-04-17 16:53:12
|
||||
* @LastEditors: jackning 270580156@qq.com
|
||||
* @LastEditTime: 2025-03-13 09:57:48
|
||||
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
|
||||
* Please be aware of the BSL license restrictions before installing Bytedesk IM –
|
||||
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
|
||||
* 仅支持企业内部员工自用,严禁私自用于销售、二次销售或者部署SaaS方式销售
|
||||
* Business Source License 1.1: https://github.com/Bytedesk/bytedesk/blob/main/LICENSE
|
||||
* contact: 270580156@qq.com
|
||||
* 联系:270580156@qq.com
|
||||
* Copyright (c) 2024 by bytedesk.com, All Rights Reserved.
|
||||
*/
|
||||
package com.bytedesk.core.black;
|
||||
|
||||
import org.aspectj.lang.JoinPoint;
|
||||
import org.aspectj.lang.annotation.AfterReturning;
|
||||
import org.aspectj.lang.annotation.AfterThrowing;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Before;
|
||||
import org.springframework.stereotype.Component;
|
||||
import com.bytedesk.core.annotation.BlackUserFilter;
|
||||
// import com.bytedesk.core.message.IMessageSendService;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 黑名单用户过滤
|
||||
*
|
||||
* 注意:不能在类上注解@Async,否则会获取不到 HttpServletRequest,attributes为空。
|
||||
* 如果不需要HttpServletRequest,可以添加@Async注解
|
||||
*
|
||||
* @author jackning
|
||||
*/
|
||||
@Slf4j
|
||||
@Aspect
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
public class BlackUserAspect {
|
||||
|
||||
// private final IMessageSendService messageSendService;
|
||||
|
||||
/**
|
||||
* 处理请求前执行
|
||||
*/
|
||||
@Before(value = "@annotation(blackUserFilter)")
|
||||
public void doBefore(JoinPoint joinPoint, BlackUserFilter blackUserFilter) {
|
||||
log.debug("blackUserLog before: model {}, action {}", blackUserFilter.title(), blackUserFilter.action());
|
||||
// 获取方法参数
|
||||
Object[] args = joinPoint.getArgs();
|
||||
for (Object arg : args) {
|
||||
if (arg instanceof String) {
|
||||
// String message = (String) arg;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理完请求后执行
|
||||
*
|
||||
* @param joinPoint 切点
|
||||
*/
|
||||
@AfterReturning(pointcut = "@annotation(blackUserFilter)", returning = "jsonResult")
|
||||
public void doAfterReturning(JoinPoint joinPoint, BlackUserFilter blackUserFilter, Object jsonResult) {
|
||||
log.debug("blackUserLog after returning: title {}, action {}", blackUserFilter.title(), blackUserFilter.action());
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* 拦截异常操作
|
||||
*
|
||||
* @param joinPoint 切点
|
||||
* @param e 异常
|
||||
*/
|
||||
@AfterThrowing(value = "@annotation(blackUserFilter)", throwing = "e")
|
||||
public void doAfterThrowing(JoinPoint joinPoint, BlackUserFilter blackUserFilter, Exception e) {
|
||||
log.info("blackUserLog after throwing: model {}, action {}", blackUserFilter.title(), blackUserFilter.action());
|
||||
// handleLog(joinPoint, blackUserFilter, e, null);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param message 消息内容
|
||||
* @return 是否包含黑名单用户
|
||||
*/
|
||||
// private boolean containsSensitiveWords(String message) {
|
||||
// log.info("containsSensitiveWords message {}", message);
|
||||
// // 实现黑名单用户过滤逻辑
|
||||
// // 例如:可以从数据库或配置文件中加载黑名单用户列表,然后进行匹配
|
||||
// // 这里简单示例,假设黑名单用户为 "黑名单用户"
|
||||
// return message.contains("黑名单用户");
|
||||
// }
|
||||
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: jackning 270580156@qq.com
|
||||
* @Date: 2025-02-22 13:42:54
|
||||
* @LastEditors: jackning 270580156@qq.com
|
||||
* @LastEditTime: 2025-03-13 09:59:48
|
||||
* @LastEditTime: 2025-03-27 21:26:47
|
||||
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
|
||||
* Please be aware of the BSL license restrictions before installing Bytedesk IM –
|
||||
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
|
||||
@@ -13,35 +13,35 @@
|
||||
*/
|
||||
package com.bytedesk.core.ip;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
// import jakarta.servlet.http.HttpServletRequest;
|
||||
// import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import org.aspectj.lang.annotation.After;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Pointcut;
|
||||
import org.springframework.stereotype.Component;
|
||||
// import org.aspectj.lang.annotation.After;
|
||||
// import org.aspectj.lang.annotation.Aspect;
|
||||
// import org.aspectj.lang.annotation.Pointcut;
|
||||
// import org.springframework.stereotype.Component;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
// import lombok.AllArgsConstructor;
|
||||
|
||||
@Slf4j
|
||||
@Aspect
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
public class BlackIpAspect {
|
||||
// @Slf4j
|
||||
// @Aspect
|
||||
// @Component
|
||||
// @AllArgsConstructor
|
||||
// public class BlackIpAspect {
|
||||
|
||||
private final HttpServletRequest request;
|
||||
// private final HttpServletRequest request;
|
||||
|
||||
@Pointcut("@annotation(com.bytedesk.core.annotation.BlackIpFilter)")
|
||||
public void logUserIp() {
|
||||
// @Pointcut("@annotation(com.bytedesk.core.annotation.BlackIpFilter)")
|
||||
// public void logUserIp() {
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
@After("logUserIp()")
|
||||
public void after(){
|
||||
// @After("logUserIp()")
|
||||
// public void after(){
|
||||
|
||||
String ip = IpUtils.getClientIp(request);
|
||||
// String ip = IpUtils.getClientIp(request);
|
||||
|
||||
log.info("User IP: {}", ip);
|
||||
}
|
||||
// log.info("User IP: {}", ip);
|
||||
// }
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
@@ -21,5 +21,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
@Component
|
||||
public class IpBlacklistEventListener {
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: jackning 270580156@qq.com
|
||||
* @Date: 2025-01-17 15:17:39
|
||||
* @LastEditors: jackning 270580156@qq.com
|
||||
* @LastEditTime: 2025-03-05 16:36:04
|
||||
* @LastEditTime: 2025-03-27 21:33:09
|
||||
* @Description: bytedesk.com https://github.com/Bytedesk/bytedesk
|
||||
* Please be aware of the BSL license restrictions before installing Bytedesk IM –
|
||||
* selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license.
|
||||
@@ -13,6 +13,7 @@
|
||||
*/
|
||||
package com.bytedesk.core.ip.black;
|
||||
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@@ -32,27 +33,47 @@ public class IpBlacklistRestController extends BaseRestController<IpBlacklistReq
|
||||
|
||||
@Override
|
||||
public ResponseEntity<?> queryByOrg(IpBlacklistRequest request) {
|
||||
return ResponseEntity.ok(JsonResult.success(ipBlacklistRestService.queryByOrg(request)));
|
||||
|
||||
Page<IpBlacklistResponse> page = ipBlacklistRestService.queryByOrg(request);
|
||||
|
||||
return ResponseEntity.ok(JsonResult.success(page));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<?> queryByUser(IpBlacklistRequest request) {
|
||||
return ResponseEntity.ok(JsonResult.success(ipBlacklistRestService.queryByUser(request)));
|
||||
|
||||
Page<IpBlacklistResponse> page = ipBlacklistRestService.queryByUser(request);
|
||||
|
||||
return ResponseEntity.ok(JsonResult.success(page));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<?> queryByUid(IpBlacklistRequest request) {
|
||||
// TODO Auto-generated method stub
|
||||
throw new UnsupportedOperationException("Unimplemented method 'queryByUid'");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<?> create(IpBlacklistRequest request) {
|
||||
return ResponseEntity.ok(JsonResult.success(ipBlacklistRestService.create(request)));
|
||||
|
||||
IpBlacklistResponse response = ipBlacklistRestService.create(request);
|
||||
|
||||
return ResponseEntity.ok(JsonResult.success(response));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<?> update(IpBlacklistRequest request) {
|
||||
return ResponseEntity.ok(JsonResult.success(ipBlacklistRestService.update(request)));
|
||||
|
||||
IpBlacklistResponse response = ipBlacklistRestService.update(request);
|
||||
|
||||
return ResponseEntity.ok(JsonResult.success(response));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<?> delete(IpBlacklistRequest request) {
|
||||
|
||||
ipBlacklistRestService.delete(request);
|
||||
|
||||
return ResponseEntity.ok(JsonResult.success());
|
||||
}
|
||||
|
||||
@@ -62,11 +83,7 @@ public class IpBlacklistRestController extends BaseRestController<IpBlacklistReq
|
||||
throw new UnsupportedOperationException("Unimplemented method 'export'");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<?> queryByUid(IpBlacklistRequest request) {
|
||||
// TODO Auto-generated method stub
|
||||
throw new UnsupportedOperationException("Unimplemented method 'queryByUid'");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user