enable acl switch
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
40
src/main/java/com/xuxd/kafka/console/utils/ConvertUtil.java
Normal file
40
src/main/java/com/xuxd/kafka/console/utils/ConvertUtil.java
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user