enable acl switch

This commit is contained in:
许晓东
2021-09-08 16:45:59 +08:00
parent 6cd87643c3
commit 8a76f226a1
9 changed files with 137 additions and 13 deletions

View File

@@ -31,6 +31,8 @@ public class KafkaConfig {
private String zookeeperAddr;
private boolean enableAcl;
public String getBootstrapServer() {
return bootstrapServer;
}
@@ -102,4 +104,12 @@ public class KafkaConfig {
public void setZookeeperAddr(String zookeeperAddr) {
this.zookeeperAddr = zookeeperAddr;
}
public boolean isEnableAcl() {
return enableAcl;
}
public void setEnableAcl(boolean enableAcl) {
this.enableAcl = enableAcl;
}
}

View File

@@ -0,0 +1,33 @@
package com.xuxd.kafka.console.controller;
import com.xuxd.kafka.console.beans.ResponseData;
import com.xuxd.kafka.console.config.KafkaConfig;
import com.xuxd.kafka.console.utils.ConvertUtil;
import java.util.Map;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* kafka-console-ui.
*
* @author xuxd
* @date 2021-09-08 16:08:22
**/
@RestController
@RequestMapping("/config")
public class ConfigController {
private final KafkaConfig config;
private final Map<String, Object> configMap;
public ConfigController(KafkaConfig config) {
this.config = config;
this.configMap = ConvertUtil.toMap(config);
}
@GetMapping
public Object getConfig() {
return ResponseData.create().data(configMap).success();
}
}

View File

@@ -208,7 +208,7 @@ public class AclServiceImpl implements AclService, SmartInitializingSingleton {
}
@Override public void afterSingletonsInstantiated() {
if (kafkaConfig.isAdminCreate()) {
if (kafkaConfig.isEnableAcl() && kafkaConfig.isAdminCreate()) {
log.info("Start create admin user, username: {}, password: {}", kafkaConfig.getAdminUsername(), kafkaConfig.getAdminPassword());
boolean done = configConsole.addOrUpdateUserWithZK(kafkaConfig.getAdminUsername(), kafkaConfig.getAdminPassword());
if (!done) {

View File

@@ -0,0 +1,40 @@
package com.xuxd.kafka.console.utils;
import com.google.common.base.Preconditions;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.ClassUtils;
/**
* kafka-console-ui.
*
* @author xuxd
* @date 2021-09-08 16:21:43
**/
@Slf4j
public class ConvertUtil {
public static Map<String, Object> toMap(Object src) {
Preconditions.checkNotNull(src);
Map<String, Object> res = new HashMap<>();
for (Class<?> clz = src.getClass(); clz != Object.class; clz = clz.getSuperclass()) {
if (ClassUtils.isCglibProxyClass(clz)) {
continue;
}
Arrays.stream(clz.getDeclaredFields()).forEach(f -> {
try {
boolean accessible = f.isAccessible();
f.setAccessible(true);
res.put(f.getName(), f.get(src));
f.setAccessible(accessible);
} catch (IllegalAccessException ignore) {
log.error("filed: " + f.getName(), ignore);
}
});
}
return res;
}
}