add kakfa acl user
This commit is contained in:
@@ -15,6 +15,7 @@ import kafka.console.KafkaAclConsole;
|
||||
import kafka.console.KafkaConfigConsole;
|
||||
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.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -68,10 +69,11 @@ public class AclServiceImpl implements AclService {
|
||||
resultMap.put(k, map);
|
||||
});
|
||||
if (entry.isNull() || StringUtils.isNotBlank(entry.getPrincipal())) {
|
||||
Set<String> userList = configConsole.getUserList(StringUtils.isNotBlank(entry.getPrincipal()) ? Collections.singletonList(entry.getPrincipal()) : null);
|
||||
userList.forEach(u -> {
|
||||
if (!resultMap.containsKey(u)) {
|
||||
resultMap.put(u, Collections.emptyMap());
|
||||
Map<String, UserScramCredentialsDescription> detailList = configConsole.getUserDetailList(StringUtils.isNotBlank(entry.getPrincipal()) ? Collections.singletonList(entry.getPrincipal()) : null);
|
||||
|
||||
detailList.values().forEach(u -> {
|
||||
if (!resultMap.containsKey(u.name()) && !u.credentialInfos().isEmpty()) {
|
||||
resultMap.put(u.name(), Collections.emptyMap());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import java.util.Set
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
import com.xuxd.kafka.console.config.KafkaConfig
|
||||
import org.apache.kafka.clients.admin.{ScramCredentialInfo, ScramMechanism, UserScramCredentialDeletion, UserScramCredentialUpsertion}
|
||||
import org.apache.kafka.clients.admin._
|
||||
|
||||
/**
|
||||
* kafka-console-ui.
|
||||
@@ -23,6 +23,12 @@ class KafkaConfigConsole(config: KafkaConfig) extends KafkaConsole(config: Kafka
|
||||
}).asInstanceOf[Set[String]]
|
||||
}
|
||||
|
||||
def getUserDetailList(users: util.List[String]): util.Map[String, UserScramCredentialsDescription] = {
|
||||
withAdminClient({
|
||||
adminClient => adminClient.describeUserScramCredentials(users).all().get()
|
||||
}).asInstanceOf[util.Map[String, UserScramCredentialsDescription]]
|
||||
}
|
||||
|
||||
def addOrUpdateUser(name: String, pass: String): Boolean = {
|
||||
withAdminClient(adminClient => {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user