create amdin user when start.

This commit is contained in:
许晓东
2021-09-02 16:20:46 +08:00
parent 517af091af
commit 4f30511293
6 changed files with 121 additions and 11 deletions

View File

@@ -23,6 +23,14 @@ public class KafkaConfig {
private String saslJaasConfig;
private String adminUsername;
private String adminPassword;
private boolean adminCreate;
private String zookeeperAddr;
public String getBootstrapServer() {
return bootstrapServer;
}
@@ -62,4 +70,36 @@ public class KafkaConfig {
public void setSaslJaasConfig(String saslJaasConfig) {
this.saslJaasConfig = saslJaasConfig;
}
public String getAdminUsername() {
return adminUsername;
}
public void setAdminUsername(String adminUsername) {
this.adminUsername = adminUsername;
}
public String getAdminPassword() {
return adminPassword;
}
public void setAdminPassword(String adminPassword) {
this.adminPassword = adminPassword;
}
public boolean isAdminCreate() {
return adminCreate;
}
public void setAdminCreate(boolean adminCreate) {
this.adminCreate = adminCreate;
}
public String getZookeeperAddr() {
return zookeeperAddr;
}
public void setZookeeperAddr(String zookeeperAddr) {
this.zookeeperAddr = zookeeperAddr;
}
}

View File

@@ -4,6 +4,7 @@ import com.xuxd.kafka.console.beans.AclEntry;
import com.xuxd.kafka.console.beans.CounterList;
import com.xuxd.kafka.console.beans.CounterMap;
import com.xuxd.kafka.console.beans.ResponseData;
import com.xuxd.kafka.console.config.KafkaConfig;
import com.xuxd.kafka.console.service.AclService;
import java.util.Collections;
import java.util.HashMap;
@@ -17,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.kafka.clients.admin.UserScramCredentialsDescription;
import org.apache.kafka.common.acl.AclBinding;
import org.springframework.beans.factory.SmartInitializingSingleton;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -28,7 +30,7 @@ import org.springframework.stereotype.Service;
**/
@Slf4j
@Service
public class AclServiceImpl implements AclService {
public class AclServiceImpl implements AclService, SmartInitializingSingleton {
@Autowired
private KafkaConfigConsole configConsole;
@@ -36,6 +38,9 @@ public class AclServiceImpl implements AclService {
@Autowired
private KafkaAclConsole aclConsole;
@Autowired
private KafkaConfig kafkaConfig;
@Override public ResponseData<Set<String>> getUserList() {
try {
return ResponseData.create(Set.class).data(configConsole.getUserList(null)).success();
@@ -46,10 +51,12 @@ public class AclServiceImpl implements AclService {
}
@Override public ResponseData addOrUpdateUser(String name, String pass) {
log.info("add or update user, username: {}, password: {}", name, pass);
return configConsole.addOrUpdateUser(name, pass) ? ResponseData.create().success() : ResponseData.create().failed();
}
@Override public ResponseData deleteUser(String name) {
log.info("delete user: {}", name);
return configConsole.deleteUser(name) ? ResponseData.create().success() : ResponseData.create().failed();
}
@@ -108,4 +115,15 @@ public class AclServiceImpl implements AclService {
@Override public ResponseData deleteUserAcl(AclEntry entry) {
return aclConsole.deleteUserAcl(entry) ? ResponseData.create().success() : ResponseData.create().failed();
}
@Override public void afterSingletonsInstantiated() {
if (kafkaConfig.isAdminCreate()) {
log.info("Start create admin user, username: {}, password: {}", kafkaConfig.getAdminUsername(), kafkaConfig.getAdminPassword());
boolean done = configConsole.addOrUpdateUserWithZK(kafkaConfig.getAdminUsername(), kafkaConfig.getAdminPassword());
if (!done) {
log.error("Create admin failed.");
throw new IllegalStateException();
}
}
}
}