├── .github └── workflows │ ├── scala.yml │ └── scala_tests.yml ├── .gitignore ├── .scalafmt.conf ├── CHANGELOG.md ├── LICENSE.txt ├── README.md ├── docker-compose.yml ├── docker_build.sh ├── docker_push.sh ├── example ├── acls.csv └── acls.yml ├── project ├── build.properties └── plugins.sbt ├── publish.sbt ├── sonatype.sbt ├── src ├── main │ ├── protobuf │ │ └── kafka │ │ │ └── ksm.proto │ ├── resources │ │ ├── application.conf │ │ └── log4j.properties │ └── scala │ │ └── io │ │ └── conduktor │ │ └── ksm │ │ ├── AclSynchronizer.scala │ │ ├── AppConfig.scala │ │ ├── ExtractAcl.scala │ │ ├── KafkaSecurityManager.scala │ │ ├── compat │ │ └── AdminClientAuthorizer.scala │ │ ├── notification │ │ ├── ConsoleNotification.scala │ │ ├── Notification.scala │ │ └── SlackNotification.scala │ │ ├── parser │ │ ├── AclParser.scala │ │ ├── AclParserRegistry.scala │ │ ├── ParserException.scala │ │ ├── csv │ │ │ ├── CsvAclParser.scala │ │ │ └── CsvParserException.scala │ │ └── yaml │ │ │ ├── YamlAclParser.scala │ │ │ └── YamlParserException.scala │ │ └── source │ │ ├── BitbucketCloudSourceAcl.scala │ │ ├── BitbucketServerSourceAcl.scala │ │ ├── FileSourceAcl.scala │ │ ├── GitHubSourceAcl.scala │ │ ├── GitLabSourceAcl.scala │ │ ├── HttpSourceAcl.scala │ │ ├── NoSourceAcl.scala │ │ ├── S3SourceAcl.scala │ │ ├── SourceAcl.scala │ │ ├── SourceAclResult.scala │ │ └── security │ │ ├── AuthenticationType.scala │ │ ├── GoogleIAM.scala │ │ └── HttpAuthentication.scala └── test │ ├── resources │ └── test-jaas.conf │ └── scala │ └── io │ └── conduktor │ └── ksm │ ├── AclSynchronizerTest.scala │ ├── DummyAuthorizer.scala │ ├── TestFixtures.scala │ ├── compat │ └── AdminClientAuthorizerTest.scala │ ├── notification │ └── DummyNotification.scala │ ├── parser │ ├── csv │ │ └── CsvAclParserTest.scala │ └── yaml │ │ └── YamlAclParserTest.scala │ └── source │ ├── BitbucketServerSourceAclTest.scala │ ├── DummyS3SourceAcl.scala │ ├── DummySourceAcl.scala │ ├── FileSourceAclTest.scala │ ├── HttpSourceAclTest.scala │ └── S3SourceAclTest.scala └── test.sh /.github/workflows/scala.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/.github/workflows/scala.yml -------------------------------------------------------------------------------- /.github/workflows/scala_tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/.github/workflows/scala_tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/.gitignore -------------------------------------------------------------------------------- /.scalafmt.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/.scalafmt.conf -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/README.md -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /docker_build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ex 3 | 4 | sbt docker:publishLocal -------------------------------------------------------------------------------- /docker_push.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/docker_push.sh -------------------------------------------------------------------------------- /example/acls.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/example/acls.csv -------------------------------------------------------------------------------- /example/acls.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/example/acls.yml -------------------------------------------------------------------------------- /project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 1.6.2 2 | -------------------------------------------------------------------------------- /project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/project/plugins.sbt -------------------------------------------------------------------------------- /publish.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/publish.sbt -------------------------------------------------------------------------------- /sonatype.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/sonatype.sbt -------------------------------------------------------------------------------- /src/main/protobuf/kafka/ksm.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/protobuf/kafka/ksm.proto -------------------------------------------------------------------------------- /src/main/resources/application.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/resources/application.conf -------------------------------------------------------------------------------- /src/main/resources/log4j.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/resources/log4j.properties -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/AclSynchronizer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/AclSynchronizer.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/AppConfig.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/AppConfig.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/ExtractAcl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/ExtractAcl.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/KafkaSecurityManager.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/KafkaSecurityManager.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/compat/AdminClientAuthorizer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/compat/AdminClientAuthorizer.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/notification/ConsoleNotification.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/notification/ConsoleNotification.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/notification/Notification.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/notification/Notification.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/notification/SlackNotification.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/notification/SlackNotification.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/parser/AclParser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/parser/AclParser.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/parser/AclParserRegistry.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/parser/AclParserRegistry.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/parser/ParserException.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/parser/ParserException.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/parser/csv/CsvAclParser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/parser/csv/CsvAclParser.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/parser/csv/CsvParserException.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/parser/csv/CsvParserException.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/parser/yaml/YamlAclParser.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/parser/yaml/YamlAclParser.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/parser/yaml/YamlParserException.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/parser/yaml/YamlParserException.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/source/BitbucketCloudSourceAcl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/source/BitbucketCloudSourceAcl.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/source/BitbucketServerSourceAcl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/source/BitbucketServerSourceAcl.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/source/FileSourceAcl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/source/FileSourceAcl.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/source/GitHubSourceAcl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/source/GitHubSourceAcl.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/source/GitLabSourceAcl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/source/GitLabSourceAcl.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/source/HttpSourceAcl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/source/HttpSourceAcl.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/source/NoSourceAcl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/source/NoSourceAcl.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/source/S3SourceAcl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/source/S3SourceAcl.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/source/SourceAcl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/source/SourceAcl.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/source/SourceAclResult.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/source/SourceAclResult.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/source/security/AuthenticationType.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/source/security/AuthenticationType.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/source/security/GoogleIAM.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/source/security/GoogleIAM.scala -------------------------------------------------------------------------------- /src/main/scala/io/conduktor/ksm/source/security/HttpAuthentication.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/main/scala/io/conduktor/ksm/source/security/HttpAuthentication.scala -------------------------------------------------------------------------------- /src/test/resources/test-jaas.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/test/resources/test-jaas.conf -------------------------------------------------------------------------------- /src/test/scala/io/conduktor/ksm/AclSynchronizerTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/test/scala/io/conduktor/ksm/AclSynchronizerTest.scala -------------------------------------------------------------------------------- /src/test/scala/io/conduktor/ksm/DummyAuthorizer.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/test/scala/io/conduktor/ksm/DummyAuthorizer.scala -------------------------------------------------------------------------------- /src/test/scala/io/conduktor/ksm/TestFixtures.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/test/scala/io/conduktor/ksm/TestFixtures.scala -------------------------------------------------------------------------------- /src/test/scala/io/conduktor/ksm/compat/AdminClientAuthorizerTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/test/scala/io/conduktor/ksm/compat/AdminClientAuthorizerTest.scala -------------------------------------------------------------------------------- /src/test/scala/io/conduktor/ksm/notification/DummyNotification.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/test/scala/io/conduktor/ksm/notification/DummyNotification.scala -------------------------------------------------------------------------------- /src/test/scala/io/conduktor/ksm/parser/csv/CsvAclParserTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/test/scala/io/conduktor/ksm/parser/csv/CsvAclParserTest.scala -------------------------------------------------------------------------------- /src/test/scala/io/conduktor/ksm/parser/yaml/YamlAclParserTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/test/scala/io/conduktor/ksm/parser/yaml/YamlAclParserTest.scala -------------------------------------------------------------------------------- /src/test/scala/io/conduktor/ksm/source/BitbucketServerSourceAclTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/test/scala/io/conduktor/ksm/source/BitbucketServerSourceAclTest.scala -------------------------------------------------------------------------------- /src/test/scala/io/conduktor/ksm/source/DummyS3SourceAcl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/test/scala/io/conduktor/ksm/source/DummyS3SourceAcl.scala -------------------------------------------------------------------------------- /src/test/scala/io/conduktor/ksm/source/DummySourceAcl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/test/scala/io/conduktor/ksm/source/DummySourceAcl.scala -------------------------------------------------------------------------------- /src/test/scala/io/conduktor/ksm/source/FileSourceAclTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/test/scala/io/conduktor/ksm/source/FileSourceAclTest.scala -------------------------------------------------------------------------------- /src/test/scala/io/conduktor/ksm/source/HttpSourceAclTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/test/scala/io/conduktor/ksm/source/HttpSourceAclTest.scala -------------------------------------------------------------------------------- /src/test/scala/io/conduktor/ksm/source/S3SourceAclTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conduktor/kafka-security-manager/HEAD/src/test/scala/io/conduktor/ksm/source/S3SourceAclTest.scala -------------------------------------------------------------------------------- /test.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ex 3 | 4 | sbt clean test 5 | --------------------------------------------------------------------------------