diff --git a/README.md b/README.md
index 57b53ca..ab15fe3 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
kongx(最新版本2.0.0)是网关kong的可视化界面管理平台(参考konga的部分界面布局方式),能够集中化管理应用不同环境的网关配置,提供同步各环境的网关配置功能,并且具备规范的权限管理、参数配置、环境管理及日志审计等特性。
-基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器
+基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器,支持在线Shell。
Kongx 使用指南请参考:[Wiki](https://www.kancloud.cn/raoxiaoyan/kongx/1984321)
@@ -17,6 +17,8 @@ Docker部署(2.0.0+支持)请参见[Docker Quick Start](./docker-quick-start/rea
## Screenshots

+
+


@@ -27,7 +29,6 @@ Docker部署(2.0.0+支持)请参见[Docker Quick Start](./docker-quick-start/rea

-
## Features
@@ -54,9 +55,11 @@ Docker部署(2.0.0+支持)请参见[Docker Quick Start](./docker-quick-start/rea
## RoadMap
-1、初步计划kongx自适应kong后续所有版本;(已完成自动适配至2.1.x版本)
+1、初步计划kongx自适应kong后续所有版本;(2.0.0版本,已完成自动适配至2.1.x版本)
-2、增加shell界面和可视化管理界面;
+2、增加shell界面和可视化管理界面(2.0.1版本支持, 2020/11/18 已完成);
+
+2、增加网关流水线的图形化界面设计;
## 技术支持
diff --git a/docker-quick-start/Dockerfile b/docker-quick-start/Dockerfile
index 635ea95..622b398 100644
--- a/docker-quick-start/Dockerfile
+++ b/docker-quick-start/Dockerfile
@@ -2,7 +2,7 @@ FROM openjdk:8-jre-alpine
ENV KONGX_RUN_MODE "Docker"
-ENV VERSION 2.0.0
+ENV VERSION 2.0.1
ENV SERVER_PORT 8095
RUN \
diff --git a/docs/kong shell.png b/docs/kong shell.png
index d294e8a..c80ea3c 100644
Binary files a/docs/kong shell.png and b/docs/kong shell.png differ
diff --git a/docs/kong_performance.md b/docs/kong_performance.md
new file mode 100644
index 0000000..0784d77
--- /dev/null
+++ b/docs/kong_performance.md
@@ -0,0 +1,8 @@
+# kong的压测报告(基于1.2.1版本)
+## 1. 压测环境
+kong服务器:16c,32G
+
+后台服务:3台nginx,16c,32g
+
+操作系统:Centos 7.6
+## 2.
\ No newline at end of file
diff --git a/kongx-common/pom.xml b/kongx-common/pom.xml
index e459f8f..e8c1b98 100644
--- a/kongx-common/pom.xml
+++ b/kongx-common/pom.xml
@@ -5,7 +5,7 @@
kongx
com.kongx
- 2.0.0
+ 2.0.1
4.0.0
diff --git a/kongx-common/src/main/java/com/kongx/common/aop/LoginValidateInterceptor.java b/kongx-common/src/main/java/com/kongx/common/aop/LoginValidateInterceptor.java
index 0d737bb..977ae68 100644
--- a/kongx-common/src/main/java/com/kongx/common/aop/LoginValidateInterceptor.java
+++ b/kongx-common/src/main/java/com/kongx/common/aop/LoginValidateInterceptor.java
@@ -5,17 +5,13 @@ import com.kongx.common.utils.JWTTokenUtils;
import com.kongx.common.utils.Jackson2Helper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
-import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
public class LoginValidateInterceptor implements HandlerInterceptor {
static Logger log = LoggerFactory.getLogger(LoginValidateInterceptor.class);
@@ -24,7 +20,6 @@ public class LoginValidateInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
log.info("LoginValidateInterceptor preHandle " + request.getRequestURL());
- log.debug("start try fetch user info...");
Object dLoginUser = request.getSession().getAttribute("USER_INFO");
String token = request.getHeader("Authorization");
if (token == null || dLoginUser == null || !JWTTokenUtils.verify(token.replaceAll("Bearer ", ""))) {
@@ -39,34 +34,6 @@ public class LoginValidateInterceptor implements HandlerInterceptor {
writer.print(Jackson2Helper.toJsonString(baseDTO));
return false;
}
- HandlerMethod method = (HandlerMethod) handler;
- Method method1 = method.getMethod();
- Class[] classes = method1.getParameterTypes();
- for (Class aClass : classes) {
- aClass.getAnnotation(PreAuthorize.class);
- }
- PreAuthorize preAuthorize = method.getMethodAnnotation(PreAuthorize.class);
- if (Optional.ofNullable(preAuthorize).isPresent()) {
- String value = preAuthorize.value();
- if ("".equals(value)) {
- return true;
- }
- Object list = request.getSession().getAttribute("PERMISSIONS");
- if (list != null) {
- Set strings = (Set) list;
- boolean authorize = strings.stream().filter((s) -> value.equalsIgnoreCase(s)).count() > 0;
- if (!authorize) {
- JsonHeaderWrapper baseDTO = new JsonHeaderWrapper<>();
- response.setCharacterEncoding("utf-8");
- response.setContentType("text/html; charset=utf-8");
- PrintWriter writer = response.getWriter();
- baseDTO.setErrmsg("拒绝访问");
- baseDTO.setStatus(403);
- writer.print(Jackson2Helper.toJsonString(baseDTO));
- }
- return authorize;
- }
- }
return true;
}
}
diff --git a/kongx-serve/pom.xml b/kongx-serve/pom.xml
index 5b57624..a8b45a4 100644
--- a/kongx-serve/pom.xml
+++ b/kongx-serve/pom.xml
@@ -5,7 +5,7 @@
kongx
com.kongx
- 2.0.0
+ 2.0.1
4.0.0
@@ -14,7 +14,7 @@
com.kongx
kongx-common
- 2.0.0
+ 2.0.1
diff --git a/kongx-serve/src/main/java/com/kongx/serve/Application.java b/kongx-serve/src/main/java/com/kongx/serve/Application.java
index 008137c..7d52d09 100644
--- a/kongx-serve/src/main/java/com/kongx/serve/Application.java
+++ b/kongx-serve/src/main/java/com/kongx/serve/Application.java
@@ -1,7 +1,7 @@
package com.kongx.serve;
import com.kongx.common.KongxBanner;
-import com.kongx.common.config.KongxConfig;
+import com.kongx.serve.config.KongxConfig;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.boot.SpringApplication;
diff --git a/kongx-common/src/main/java/com/kongx/common/aop/PreAuthorize.java b/kongx-serve/src/main/java/com/kongx/serve/annotation/Authorize.java
similarity index 68%
rename from kongx-common/src/main/java/com/kongx/common/aop/PreAuthorize.java
rename to kongx-serve/src/main/java/com/kongx/serve/annotation/Authorize.java
index 409bd73..d0b0920 100644
--- a/kongx-common/src/main/java/com/kongx/common/aop/PreAuthorize.java
+++ b/kongx-serve/src/main/java/com/kongx/serve/annotation/Authorize.java
@@ -1,4 +1,4 @@
-package com.kongx.common.aop;
+package com.kongx.serve.annotation;
import java.lang.annotation.*;
@@ -6,6 +6,6 @@ import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
-public @interface PreAuthorize {
+public @interface Authorize {
String value();
}
diff --git a/kongx-serve/src/main/java/com/kongx/serve/annotation/KongLog.java b/kongx-serve/src/main/java/com/kongx/serve/annotation/KongLog.java
new file mode 100644
index 0000000..eb458e2
--- /dev/null
+++ b/kongx-serve/src/main/java/com/kongx/serve/annotation/KongLog.java
@@ -0,0 +1,20 @@
+package com.kongx.serve.annotation;
+
+
+import java.lang.annotation.*;
+
+import static com.kongx.serve.entity.system.OperationLog.OperationTarget;
+import static com.kongx.serve.entity.system.OperationLog.OperationType;
+
+@Target({ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+@Inherited
+@Documented
+public @interface KongLog {
+
+ OperationType operation() default OperationType.OPERATION_DEFAULT;
+
+ OperationTarget target();
+
+ String content() default "";
+}
diff --git a/kongx-serve/src/main/java/com/kongx/serve/aop/KongLogAspect.java b/kongx-serve/src/main/java/com/kongx/serve/aop/KongLogAspect.java
new file mode 100644
index 0000000..b151ca2
--- /dev/null
+++ b/kongx-serve/src/main/java/com/kongx/serve/aop/KongLogAspect.java
@@ -0,0 +1,91 @@
+package com.kongx.serve.aop;
+
+import com.kongx.common.core.entity.UserInfo;
+import com.kongx.common.utils.JWTTokenUtils;
+import com.kongx.common.utils.WebUtil;
+import com.kongx.serve.annotation.KongLog;
+import com.kongx.serve.entity.system.OperationLog;
+import com.kongx.serve.entity.system.SystemProfile;
+import com.kongx.serve.service.system.LogService;
+import com.kongx.serve.service.system.SystemProfileService;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.DefaultParameterNameDiscoverer;
+import org.springframework.expression.EvaluationContext;
+import org.springframework.expression.Expression;
+import org.springframework.expression.spel.standard.SpelExpressionParser;
+import org.springframework.expression.spel.support.StandardEvaluationContext;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Method;
+
+@Component
+@Aspect
+public class KongLogAspect {
+ @Autowired
+ private LogService logService;
+
+ @Autowired
+ private SystemProfileService systemProfileService;
+
+ private SpelExpressionParser parserSpel = new SpelExpressionParser();
+ private DefaultParameterNameDiscoverer parameterNameDiscoverer = new DefaultParameterNameDiscoverer();
+
+ @Pointcut("@annotation(com.kongx.serve.annotation.KongLog)")
+ public void annotationPointCut() {
+ }
+
+ @Before("annotationPointCut()")
+ public void log(JoinPoint joinPoint) {
+ try {
+ MethodSignature sign = (MethodSignature) joinPoint.getSignature();
+ Method method = sign.getMethod();
+ method.getName();
+ KongLog kongLog = method.getAnnotation(KongLog.class);
+ ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+ HttpServletRequest request = requestAttributes.getRequest();
+
+ String token = request.getHeader("Authorization");
+
+ UserInfo userInfo = JWTTokenUtils.decode(token.replaceAll("Bearer ", ""));
+ SystemProfile systemProfile = systemProfileService.getClientByName(userInfo.getUserId());
+ OperationLog operationLog = new OperationLog();
+ OperationLog.OperationType operationType = kongLog.operation();
+ if (kongLog.operation() == OperationLog.OperationType.OPERATION_DEFAULT) {
+ operationType = OperationLog.OperationType.mapping(method.getName());
+ }
+ operationLog.setUserId(userInfo.getUserId());
+ operationLog.setProfile(systemProfile.getProfile());
+ operationLog.setCreator(userInfo.getName());
+ operationLog.setOperation(operationType.getRemark());
+ operationLog.setTarget(kongLog.target().getTarget());
+ operationLog.setRemark(String.format("%s %s %s", operationLog.getCreator(), operationType.getRemark(), kongLog.target().getTarget()));
+ operationLog.setIp(WebUtil.getClientIp(request));
+ operationLog.setContent(getValueBykey(kongLog.content(), joinPoint));
+ logService.log(systemProfile, operationLog);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+
+ public Object getValueBykey(String spELString, JoinPoint pjp) {
+ Expression expression = parserSpel.parseExpression(spELString);
+ EvaluationContext context = new StandardEvaluationContext();
+ MethodSignature methodSignature = (MethodSignature) pjp.getSignature();
+ Object[] args = pjp.getArgs();
+ String[] paramNames = parameterNameDiscoverer.getParameterNames(methodSignature.getMethod());
+ for (int i = 0; i < args.length; i++) {
+ context.setVariable(paramNames[i], args[i]);
+ }
+ return expression.getValue(context);
+ }
+}
\ No newline at end of file
diff --git a/kongx-common/src/main/java/com/kongx/common/config/KongxConfig.java b/kongx-serve/src/main/java/com/kongx/serve/config/KongxConfig.java
similarity index 78%
rename from kongx-common/src/main/java/com/kongx/common/config/KongxConfig.java
rename to kongx-serve/src/main/java/com/kongx/serve/config/KongxConfig.java
index 9fd5b37..31a22f3 100644
--- a/kongx-common/src/main/java/com/kongx/common/config/KongxConfig.java
+++ b/kongx-serve/src/main/java/com/kongx/serve/config/KongxConfig.java
@@ -1,4 +1,4 @@
-package com.kongx.common.config;
+package com.kongx.serve.config;
import com.kongx.common.aop.LoginValidateInterceptor;
import com.kongx.common.aop.UserArgumentResolver;
@@ -13,10 +13,11 @@ import java.util.List;
@Configurable
public class KongxConfig implements WebMvcConfigurer {
- @Value("${portal.exclude.paths:/index,/authorize/login.do,/inner/monitor/ping,/health/check,/authorize/getUserInfo.do,/authorize/logout.do," +
- "/authorize/errorTimes.do,/index.html,/cdn/**,/css/**,/img/**,/js/**,/svg/**,/util/**,/favicon.ico}")
+ @Value("${portal.exclude.paths:/shell,/index,/authorize/login.do,/inner/monitor/ping,/health/check,/authorize/getUserInfo.do,/authorize/logout.do," +
+ "/index.html,/cdn/**,/css/**,/img/**,/js/**,/svg/**,/util/**,/favicon.ico}")
private String excludePaths;
+
@Override
public void addArgumentResolvers(List argumentResolvers) {
argumentResolvers.add(new ServletWebArgumentResolverAdapter(new UserArgumentResolver()));
diff --git a/kongx-serve/src/main/java/com/kongx/serve/controller/AuthorizeController.java b/kongx-serve/src/main/java/com/kongx/serve/controller/AuthorizeController.java
index c10d075..992a93a 100644
--- a/kongx-serve/src/main/java/com/kongx/serve/controller/AuthorizeController.java
+++ b/kongx-serve/src/main/java/com/kongx/serve/controller/AuthorizeController.java
@@ -49,7 +49,7 @@ public class AuthorizeController extends BaseController {
try {
UserInfo userInfo = userInfoService.login(request.getParameter("username"), request.getParameter("password"));
jsonHeaderWrapper.setData(JWTTokenUtils.getToken(userInfo));
- this.log(userInfo, OperationLog.OperationType.OPERATION_LOGIN, OperationLog.OperationTarget.SYSTEM, userInfo);
+ this.log(userInfo, OperationLog.OperationType.OPERATION_LOGIN, OperationLog.OperationTarget.SYSTEM, userInfo, request);
} catch (Exception e) {
jsonHeaderWrapper.setStatus(500);
jsonHeaderWrapper.setErrmsg(e.getMessage());
diff --git a/kongx-serve/src/main/java/com/kongx/serve/controller/BaseController.java b/kongx-serve/src/main/java/com/kongx/serve/controller/BaseController.java
index 0d2f50b..ac6377a 100644
--- a/kongx-serve/src/main/java/com/kongx/serve/controller/BaseController.java
+++ b/kongx-serve/src/main/java/com/kongx/serve/controller/BaseController.java
@@ -2,6 +2,7 @@ package com.kongx.serve.controller;
import com.kongx.common.core.entity.UserInfo;
import com.kongx.common.jsonwrapper.JsonHeaderWrapper;
+import com.kongx.common.utils.WebUtil;
import com.kongx.serve.entity.system.OperationLog;
import com.kongx.serve.entity.system.SystemProfile;
import com.kongx.serve.service.system.LogService;
@@ -10,6 +11,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import javax.servlet.http.HttpServletRequest;
+
public abstract class BaseController {
@Autowired
@@ -29,12 +32,12 @@ public abstract class BaseController {
return this.systemProfileService.getClientByName(userInfo.getUserId());
}
- protected void log(UserInfo userInfo, OperationLog.OperationType operationType, OperationLog.OperationTarget operationTarget, Object content) {
- OperationLog operationLog = to(userInfo, operationType, operationTarget, content);
+ protected void log(UserInfo userInfo, OperationLog.OperationType operationType, OperationLog.OperationTarget operationTarget, Object content, HttpServletRequest request) {
+ OperationLog operationLog = to(userInfo, operationType, operationTarget, content, WebUtil.getClientIp(request));
this.logService.log(systemProfile(userInfo), operationLog);
}
- private OperationLog to(UserInfo userInfo, OperationLog.OperationType operationType, OperationLog.OperationTarget operationTarget, Object content) {
+ private OperationLog to(UserInfo userInfo, OperationLog.OperationType operationType, OperationLog.OperationTarget operationTarget, Object content, String ip) {
OperationLog operationLog = new OperationLog();
SystemProfile systemProfile = this.systemProfile(userInfo);
operationLog.setUserId(userInfo.getUserId());
@@ -42,13 +45,16 @@ public abstract class BaseController {
operationLog.setTarget(operationTarget.getType());
operationLog.setOperation(operationType.getType());
operationLog.setProfile(systemProfile.getProfile());
+ operationLog.setIp(ip);
operationLog.setContent(content);
+
operationLog.setRemark(String.format("%s %s %s", operationLog.getCreator(), operationType.getRemark(), operationTarget.getTarget()));
return operationLog;
}
- protected void log(UserInfo userInfo, OperationLog.OperationType operationType, OperationLog.OperationTarget operationTarget, Object content, String remark) {
- OperationLog operationLog = to(userInfo, operationType, operationTarget, content);
+ protected void log(UserInfo userInfo, OperationLog.OperationType operationType, OperationLog.OperationTarget operationTarget, Object content, String remark
+ , HttpServletRequest request) {
+ OperationLog operationLog = to(userInfo, operationType, operationTarget, content, WebUtil.getClientIp(request));
operationLog.setRemark(String.format("%s %s %s %s", operationLog.getCreator(), operationType.getRemark(), operationTarget.getTarget(), remark));
this.logService.log(systemProfile(userInfo), operationLog);
}
diff --git a/kongx-serve/src/main/java/com/kongx/serve/controller/gateway/CaCertificateController.java b/kongx-serve/src/main/java/com/kongx/serve/controller/gateway/CaCertificateController.java
index df97a73..0ce4d47 100644
--- a/kongx-serve/src/main/java/com/kongx/serve/controller/gateway/CaCertificateController.java
+++ b/kongx-serve/src/main/java/com/kongx/serve/controller/gateway/CaCertificateController.java
@@ -2,6 +2,7 @@ package com.kongx.serve.controller.gateway;
import com.kongx.common.core.entity.UserInfo;
import com.kongx.common.jsonwrapper.JsonHeaderWrapper;
+import com.kongx.serve.annotation.KongLog;
import com.kongx.serve.controller.BaseController;
import com.kongx.serve.entity.gateway.CaCertificate;
import com.kongx.serve.entity.gateway.KongEntity;
@@ -49,12 +50,12 @@ public class CaCertificateController extends BaseController {
* @throws URISyntaxException
*/
@RequestMapping(value = CERTIFICATES_URI, method = RequestMethod.POST)
- public JsonHeaderWrapper addUpstream(UserInfo userInfo, @RequestBody CaCertificate sni) {
+ @KongLog(target = OperationLog.OperationTarget.CaCertificate, content = "#sni")
+ public JsonHeaderWrapper add(UserInfo userInfo, @RequestBody CaCertificate sni) {
JsonHeaderWrapper jsonHeaderWrapper = this.init();
try {
CaCertificate results = this.caCertificateService.add(systemProfile(userInfo), sni.trim());
jsonHeaderWrapper.setData(results);
- this.log(userInfo, OperationLog.OperationType.OPERATION_ADD, OperationLog.OperationTarget.CaCertificate, sni);
} catch (Exception e) {
jsonHeaderWrapper.setStatus(JsonHeaderWrapper.StatusEnum.Failed.getCode());
jsonHeaderWrapper.setErrmsg(e.getMessage());
@@ -71,12 +72,12 @@ public class CaCertificateController extends BaseController {
* @throws URISyntaxException
*/
@RequestMapping(value = CERTIFICATES_URI_ID, method = RequestMethod.POST)
+ @KongLog(target = OperationLog.OperationTarget.CaCertificate, content = "#sni")
public JsonHeaderWrapper update(UserInfo userInfo, @PathVariable String id, @RequestBody CaCertificate sni) {
JsonHeaderWrapper jsonHeaderWrapper = this.init();
try {
CaCertificate results = this.caCertificateService.update(systemProfile(userInfo), id, sni.trim());
jsonHeaderWrapper.setData(results);
- this.log(userInfo, OperationLog.OperationType.OPERATION_UPDATE, OperationLog.OperationTarget.CaCertificate, sni, sni.getId());
} catch (Exception e) {
jsonHeaderWrapper.setStatus(JsonHeaderWrapper.StatusEnum.Failed.getCode());
jsonHeaderWrapper.setErrmsg(e.getMessage());
@@ -92,12 +93,11 @@ public class CaCertificateController extends BaseController {
* @throws URISyntaxException
*/
@RequestMapping(value = CERTIFICATES_URI_ID, method = RequestMethod.DELETE)
+ @KongLog(target = OperationLog.OperationTarget.CaCertificate, content = "#id")
public JsonHeaderWrapper remove(UserInfo userInfo, @PathVariable String id) throws Exception {
JsonHeaderWrapper jsonHeaderWrapper = this.init();
try {
- CaCertificate sni = this.caCertificateService.findEntity(systemProfile(userInfo), id);
KongEntity upstreamKongEntity = this.caCertificateService.remove(systemProfile(userInfo), id);
- this.log(userInfo, OperationLog.OperationType.OPERATION_DELETE, OperationLog.OperationTarget.CaCertificate, sni);
jsonHeaderWrapper.setData(upstreamKongEntity.getData());
} catch (Exception e) {
jsonHeaderWrapper.setStatus(JsonHeaderWrapper.StatusEnum.Failed.getCode());
diff --git a/kongx-serve/src/main/java/com/kongx/serve/controller/gateway/CertificateController.java b/kongx-serve/src/main/java/com/kongx/serve/controller/gateway/CertificateController.java
index 3b13713..7b5838e 100644
--- a/kongx-serve/src/main/java/com/kongx/serve/controller/gateway/CertificateController.java
+++ b/kongx-serve/src/main/java/com/kongx/serve/controller/gateway/CertificateController.java
@@ -2,6 +2,7 @@ package com.kongx.serve.controller.gateway;
import com.kongx.common.core.entity.UserInfo;
import com.kongx.common.jsonwrapper.JsonHeaderWrapper;
+import com.kongx.serve.annotation.KongLog;
import com.kongx.serve.controller.BaseController;
import com.kongx.serve.entity.gateway.Certificate;
import com.kongx.serve.entity.gateway.KongEntity;
@@ -49,12 +50,12 @@ public class CertificateController extends BaseController {
* @throws URISyntaxException
*/
@RequestMapping(value = CERTIFICATES_URI, method = RequestMethod.POST)
- public JsonHeaderWrapper addUpstream(UserInfo userInfo, @RequestBody Certificate sni) {
+ @KongLog(target = OperationLog.OperationTarget.Certificate, content = "#sni")
+ public JsonHeaderWrapper add(UserInfo userInfo, @RequestBody Certificate sni) {
JsonHeaderWrapper jsonHeaderWrapper = this.init();
try {
Certificate results = this.certificateService.add(systemProfile(userInfo), sni.trim());
jsonHeaderWrapper.setData(results);
- this.log(userInfo, OperationLog.OperationType.OPERATION_ADD, OperationLog.OperationTarget.Certificate, sni);
} catch (Exception e) {
jsonHeaderWrapper.setStatus(JsonHeaderWrapper.StatusEnum.Failed.getCode());
jsonHeaderWrapper.setErrmsg(e.getMessage());
@@ -71,12 +72,12 @@ public class CertificateController extends BaseController {
* @throws URISyntaxException
*/
@RequestMapping(value = CERTIFICATES_URI_ID, method = RequestMethod.POST)
+ @KongLog(target = OperationLog.OperationTarget.Certificate, content = "#sni")
public JsonHeaderWrapper update(UserInfo userInfo, @PathVariable String id, @RequestBody Certificate sni) {
JsonHeaderWrapper jsonHeaderWrapper = this.init();
try {
Certificate results = this.certificateService.update(systemProfile(userInfo), id, sni.trim());
jsonHeaderWrapper.setData(results);
- this.log(userInfo, OperationLog.OperationType.OPERATION_UPDATE, OperationLog.OperationTarget.Certificate, sni, sni.getKey());
} catch (Exception e) {
jsonHeaderWrapper.setStatus(JsonHeaderWrapper.StatusEnum.Failed.getCode());
jsonHeaderWrapper.setErrmsg(e.getMessage());
@@ -92,12 +93,11 @@ public class CertificateController extends BaseController {
* @throws URISyntaxException
*/
@RequestMapping(value = CERTIFICATES_URI_ID, method = RequestMethod.DELETE)
+ @KongLog(target = OperationLog.OperationTarget.Certificate, content = "#id")
public JsonHeaderWrapper remove(UserInfo userInfo, @PathVariable String id) throws Exception {
JsonHeaderWrapper jsonHeaderWrapper = this.init();
try {
- Certificate sni = this.certificateService.findEntity(systemProfile(userInfo), id);
KongEntity upstreamKongEntity = this.certificateService.remove(systemProfile(userInfo), id);
- this.log(userInfo, OperationLog.OperationType.OPERATION_DELETE, OperationLog.OperationTarget.Certificate, sni);
jsonHeaderWrapper.setData(upstreamKongEntity.getData());
} catch (Exception e) {
jsonHeaderWrapper.setStatus(JsonHeaderWrapper.StatusEnum.Failed.getCode());
diff --git a/kongx-serve/src/main/java/com/kongx/serve/controller/gateway/ConsumerController.java b/kongx-serve/src/main/java/com/kongx/serve/controller/gateway/ConsumerController.java
index ae3f585..91af37a 100644
--- a/kongx-serve/src/main/java/com/kongx/serve/controller/gateway/ConsumerController.java
+++ b/kongx-serve/src/main/java/com/kongx/serve/controller/gateway/ConsumerController.java
@@ -2,6 +2,7 @@ package com.kongx.serve.controller.gateway;
import com.kongx.common.core.entity.UserInfo;
import com.kongx.common.jsonwrapper.JsonHeaderWrapper;
+import com.kongx.serve.annotation.KongLog;
import com.kongx.serve.controller.BaseController;
import com.kongx.serve.entity.gateway.Consumer;
import com.kongx.serve.entity.gateway.KongEntity;
@@ -80,12 +81,12 @@ public class ConsumerController extends BaseController {
}
@RequestMapping(value = CREDENTIALS_URI, method = RequestMethod.POST)
+ @KongLog(target = OperationLog.OperationTarget.CONSUMERS_CERTIFICATE, content = "#map")
public JsonHeaderWrapper addCredentials(UserInfo userInfo, @RequestBody Map map, @PathVariable String customerId, @PathVariable String entityName) {
JsonHeaderWrapper jsonHeaderWrapper = this.init();
try {
Map results = this.consumerService.addCredentials(systemProfile(userInfo), map, customerId, entityName);
jsonHeaderWrapper.setData(results);
- this.log(userInfo, OperationLog.OperationType.OPERATION_ADD, OperationLog.OperationTarget.CONSUMERS, map);
} catch (Exception e) {
jsonHeaderWrapper.setStatus(JsonHeaderWrapper.StatusEnum.Failed.getCode());
jsonHeaderWrapper.setErrmsg(e.getMessage());
@@ -101,12 +102,12 @@ public class ConsumerController extends BaseController {
* @throws URISyntaxException
*/
@RequestMapping(value = CONSUMER_URI, method = RequestMethod.POST)
+ @KongLog(target = OperationLog.OperationTarget.CONSUMERS, content = "#consumer")
public JsonHeaderWrapper add(UserInfo userInfo, @RequestBody Consumer consumer) {
JsonHeaderWrapper jsonHeaderWrapper = this.init();
try {
Consumer results = this.consumerService.add(systemProfile(userInfo), consumer.trim());
jsonHeaderWrapper.setData(results);
- this.log(userInfo, OperationLog.OperationType.OPERATION_ADD, OperationLog.OperationTarget.CONSUMERS, consumer.getUsername());
} catch (Exception e) {
jsonHeaderWrapper.setStatus(JsonHeaderWrapper.StatusEnum.Failed.getCode());
jsonHeaderWrapper.setErrmsg(e.getMessage());
@@ -123,12 +124,12 @@ public class ConsumerController extends BaseController {
* @throws URISyntaxException
*/
@RequestMapping(value = CONSUMER_URI_ID, method = RequestMethod.POST)
+ @KongLog(target = OperationLog.OperationTarget.CONSUMERS, content = "#consumer")
public JsonHeaderWrapper update(UserInfo userInfo, @PathVariable String id, @RequestBody Consumer consumer) {
JsonHeaderWrapper jsonHeaderWrapper = this.init();
try {
Consumer results = this.consumerService.update(systemProfile(userInfo), id, consumer.trim());
jsonHeaderWrapper.setData(results);
- this.log(userInfo, OperationLog.OperationType.OPERATION_UPDATE, OperationLog.OperationTarget.CONSUMERS, consumer, consumer.getUsername());
} catch (Exception e) {
jsonHeaderWrapper.setStatus(JsonHeaderWrapper.StatusEnum.Failed.getCode());
jsonHeaderWrapper.setErrmsg(e.getMessage());
@@ -143,13 +144,13 @@ public class ConsumerController extends BaseController {
* @throws URISyntaxException
*/
@RequestMapping(value = CREDENTIALS_URI_ID, method = RequestMethod.DELETE)
+ @KongLog(target = OperationLog.OperationTarget.CONSUMERS_CERTIFICATE, content = "#entityId")
public JsonHeaderWrapper removeCredential(UserInfo userInfo, @PathVariable String customerId, @PathVariable String entityName,
@PathVariable String entityId) throws Exception {
JsonHeaderWrapper jsonHeaderWrapper = this.init();
try {
KongEntity