diff --git a/build.sh b/build.sh index f3ea8642..a6e86d7d 100644 --- a/build.sh +++ b/build.sh @@ -4,7 +4,7 @@ cd $workspace ## constant OUTPUT_DIR=./output -KM_VERSION=2.3.0 +KM_VERSION=2.3.1 APP_NAME=kafka-manager APP_DIR=${APP_NAME}-${KM_VERSION} diff --git a/container/dockerfiles/docker-depends/jmx_prometheus_javaagent-0.14.0.jar b/container/dockerfiles/docker-depends/jmx_prometheus_javaagent-0.14.0.jar new file mode 100644 index 00000000..54b633bf Binary files /dev/null and b/container/dockerfiles/docker-depends/jmx_prometheus_javaagent-0.14.0.jar differ diff --git a/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/gateway/impl/AppDaoImpl.java b/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/gateway/impl/AppDaoImpl.java index 62475b9b..c14367fc 100644 --- a/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/gateway/impl/AppDaoImpl.java +++ b/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/gateway/impl/AppDaoImpl.java @@ -78,13 +78,14 @@ public class AppDaoImpl implements AppDao { * 更新APP缓存 */ private synchronized void updateTopicCache(List doList, long timestamp) { + if (APP_CACHE_LATEST_UPDATE_TIME == Constant.START_TIMESTAMP) { + APP_MAP.clear(); + } + if (doList == null || doList.isEmpty() || APP_CACHE_LATEST_UPDATE_TIME >= timestamp) { // 本次无数据更新, 或者本次更新过时 时, 忽略本次更新 return; } - if (APP_CACHE_LATEST_UPDATE_TIME == Constant.START_TIMESTAMP) { - APP_MAP.clear(); - } for (AppDO elem: doList) { APP_MAP.put(elem.getAppId(), elem); diff --git a/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/gateway/impl/AuthorityDaoImpl.java b/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/gateway/impl/AuthorityDaoImpl.java index 1b5df873..c7bac9e0 100644 --- a/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/gateway/impl/AuthorityDaoImpl.java +++ b/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/gateway/impl/AuthorityDaoImpl.java @@ -93,7 +93,7 @@ public class AuthorityDaoImpl implements AuthorityDao { private void updateAuthorityCache() { - Long timestamp = System.currentTimeMillis(); + long timestamp = System.currentTimeMillis(); if (timestamp + 1000 <= AUTHORITY_CACHE_LATEST_UPDATE_TIME) { // 近一秒内的请求不走db @@ -109,13 +109,14 @@ public class AuthorityDaoImpl implements AuthorityDao { * 更新Topic缓存 */ private synchronized void updateAuthorityCache(List doList, Long timestamp) { + if (AUTHORITY_CACHE_LATEST_UPDATE_TIME == Constant.START_TIMESTAMP) { + AUTHORITY_MAP.clear(); + } + if (doList == null || doList.isEmpty() || AUTHORITY_CACHE_LATEST_UPDATE_TIME >= timestamp) { // 本次无数据更新, 或者本次更新过时 时, 忽略本次更新 return; } - if (AUTHORITY_CACHE_LATEST_UPDATE_TIME == Constant.START_TIMESTAMP) { - AUTHORITY_MAP.clear(); - } for (AuthorityDO elem: doList) { Map> doMap = diff --git a/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/impl/TopicDaoImpl.java b/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/impl/TopicDaoImpl.java index 3c1ba335..58a989c6 100644 --- a/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/impl/TopicDaoImpl.java +++ b/kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/impl/TopicDaoImpl.java @@ -92,7 +92,7 @@ public class TopicDaoImpl implements TopicDao { } private void updateTopicCache() { - Long timestamp = System.currentTimeMillis(); + long timestamp = System.currentTimeMillis(); if (timestamp + 1000 <= TOPIC_CACHE_LATEST_UPDATE_TIME) { // 近一秒内的请求不走db @@ -108,13 +108,14 @@ public class TopicDaoImpl implements TopicDao { * 更新Topic缓存 */ private synchronized void updateTopicCache(List doList, Long timestamp) { + if (TOPIC_CACHE_LATEST_UPDATE_TIME == Constant.START_TIMESTAMP) { + TOPIC_MAP.clear(); + } + if (doList == null || doList.isEmpty() || TOPIC_CACHE_LATEST_UPDATE_TIME >= timestamp) { // 本次无数据更新, 或者本次更新过时 时, 忽略本次更新 return; } - if (TOPIC_CACHE_LATEST_UPDATE_TIME == Constant.START_TIMESTAMP) { - TOPIC_MAP.clear(); - } for (TopicDO elem: doList) { Map doMap = TOPIC_MAP.getOrDefault(elem.getClusterId(), new ConcurrentHashMap<>()); diff --git a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/LoginServiceImpl.java b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/LoginServiceImpl.java index 7c82053f..61719b4f 100644 --- a/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/LoginServiceImpl.java +++ b/kafka-manager-extends/kafka-manager-account/src/main/java/com/xiaojukeji/kafka/manager/account/impl/LoginServiceImpl.java @@ -84,7 +84,7 @@ public class LoginServiceImpl implements LoginService { return false; } - boolean status = checkAuthority(request, accountService.getAccountRoleFromCache(username)); + boolean status = checkAuthority(classRequestMappingValue, accountService.getAccountRoleFromCache(username)); if (status) { HttpSession session = request.getSession(); session.setAttribute(LoginConstant.SESSION_USERNAME_KEY, username); @@ -94,19 +94,18 @@ public class LoginServiceImpl implements LoginService { return false; } - private boolean checkAuthority(HttpServletRequest request, AccountRoleEnum accountRoleEnum) { - String uri = request.getRequestURI(); - if (uri.contains(ApiPrefix.API_V1_NORMAL_PREFIX)) { + private boolean checkAuthority(String classRequestMappingValue, AccountRoleEnum accountRoleEnum) { + if (classRequestMappingValue.equals(ApiPrefix.API_V1_NORMAL_PREFIX)) { // normal 接口都可以访问 return true; } - if (uri.contains(ApiPrefix.API_V1_RD_PREFIX) ) { - // RD 接口 OP 或者 RD 可以访问 + if (classRequestMappingValue.equals(ApiPrefix.API_V1_RD_PREFIX) ) { + // RD 接口, OP 或者 RD 可以访问 return AccountRoleEnum.RD.equals(accountRoleEnum) || AccountRoleEnum.OP.equals(accountRoleEnum); } - if (uri.contains(ApiPrefix.API_V1_OP_PREFIX)) { + if (classRequestMappingValue.equals(ApiPrefix.API_V1_OP_PREFIX)) { // OP 接口只有 OP 可以访问 return AccountRoleEnum.OP.equals(accountRoleEnum); } diff --git a/pom.xml b/pom.xml index 6c9d117f..66d78b2b 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ - 2.3.0-SNAPSHOT + 2.3.1-SNAPSHOT 2.7.0 1.5.13