From b01a7330883cbd5bce618ea44ea0f86ce6332729 Mon Sep 17 00:00:00 2001 From: sunil unnava Date: Wed, 19 Sep 2018 18:08:36 -0400 Subject: [PATCH] Added AAF plugin Issue-ID: DMAAP-528 Change-Id: Ie24eba58e44b8df727e28003b1d67fddd8ffcd81 Signed-off-by: sunil unnava --- pom.xml | 103 +++++++++++- src/main/docker/Dockerfile | 7 + src/main/docker/cadi.properties | 20 +++ src/main/docker/docker-compose.yml | 15 -- src/main/docker/kafka_server_jaas.conf | 5 + src/main/docker/keyfilenew | 27 +++ src/main/docker/org.onap.dmaap.mr.p12 | Bin 0 -> 4056 bytes src/main/docker/start-kafka.sh | 12 ++ src/main/docker/truststoreONAPall.jks | Bin 0 -> 114865 bytes .../base/authorization/AuthorizationProvider.java | 30 ++++ .../AuthorizationProviderFactory.java | 51 ++++++ .../kafka/base/authorization/Cadi3AAFProvider.java | 158 ++++++++++++++++++ .../kafkaAuthorize/KafkaCustomAuthorizer.java | 153 +++++++++++++++++ .../dmaap/kafkaAuthorize/PlainLoginModule1.java | 70 ++++++++ .../dmaap/kafkaAuthorize/PlainSaslServer1.java | 185 +++++++++++++++++++++ .../kafkaAuthorize/PlainSaslServerProvider1.java | 40 +++++ ....kafka.base.authorization.AuthorizationProvider | 1 + .../AuthorizationProviderFactoryTest.java | 36 ++++ .../base/authorization/Cadi3AAFProviderTest.java | 76 +++++++++ .../kafka/base/authorization/JUnitTestSuite.java | 41 +++++ .../kafka/base/authorization/TestRunner.java | 41 +++++ .../onap/dmaap/kafkaAuthorize/JUnitTestSuite.java | 41 +++++ .../kafkaAuthorize/KafkaCustomAuthorizerTest.java | 99 +++++++++++ .../dmaap/kafkaAuthorize/PlainSaslServer1Test.java | 68 ++++++++ .../org/onap/dmaap/kafkaAuthorize/TestRunner.java | 41 +++++ src/test/resources/cadi.properties | 20 +++ src/test/resources/keyfilenew | 27 +++ src/test/resources/org.onap.dmaap.mr.p12 | Bin 0 -> 4056 bytes src/test/resources/truststoreONAPall.jks | Bin 0 -> 114865 bytes version.properties | 4 +- 30 files changed, 1349 insertions(+), 22 deletions(-) create mode 100644 src/main/docker/cadi.properties delete mode 100644 src/main/docker/docker-compose.yml create mode 100644 src/main/docker/kafka_server_jaas.conf create mode 100644 src/main/docker/keyfilenew create mode 100644 src/main/docker/org.onap.dmaap.mr.p12 create mode 100644 src/main/docker/truststoreONAPall.jks create mode 100644 src/main/java/org/onap/dmaap/commonauth/kafka/base/authorization/AuthorizationProvider.java create mode 100644 src/main/java/org/onap/dmaap/commonauth/kafka/base/authorization/AuthorizationProviderFactory.java create mode 100644 src/main/java/org/onap/dmaap/commonauth/kafka/base/authorization/Cadi3AAFProvider.java create mode 100644 src/main/java/org/onap/dmaap/kafkaAuthorize/KafkaCustomAuthorizer.java create mode 100644 src/main/java/org/onap/dmaap/kafkaAuthorize/PlainLoginModule1.java create mode 100644 src/main/java/org/onap/dmaap/kafkaAuthorize/PlainSaslServer1.java create mode 100644 src/main/java/org/onap/dmaap/kafkaAuthorize/PlainSaslServerProvider1.java create mode 100644 src/main/resources/META-INF/services/org.onap.dmaap.commonauth.kafka.base.authorization.AuthorizationProvider create mode 100644 src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/AuthorizationProviderFactoryTest.java create mode 100644 src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/Cadi3AAFProviderTest.java create mode 100644 src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/JUnitTestSuite.java create mode 100644 src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/TestRunner.java create mode 100644 src/test/java/org/onap/dmaap/kafkaAuthorize/JUnitTestSuite.java create mode 100644 src/test/java/org/onap/dmaap/kafkaAuthorize/KafkaCustomAuthorizerTest.java create mode 100644 src/test/java/org/onap/dmaap/kafkaAuthorize/PlainSaslServer1Test.java create mode 100644 src/test/java/org/onap/dmaap/kafkaAuthorize/TestRunner.java create mode 100644 src/test/resources/cadi.properties create mode 100644 src/test/resources/keyfilenew create mode 100644 src/test/resources/org.onap.dmaap.mr.p12 create mode 100644 src/test/resources/truststoreONAPall.jks diff --git a/pom.xml b/pom.xml index 4b03b49..de67dac 100644 --- a/pom.xml +++ b/pom.xml @@ -1,4 +1,3 @@ - - + 4.0.0 @@ -21,7 +21,7 @@ org.onap.dmaap.kafka kafka11aaf - 1.0.0-SNAPSHOT + 0.0.2-SNAPSHOT kafka11aaf @@ -32,7 +32,7 @@ Sunil Unnava - + ATT www.att.com @@ -40,6 +40,28 @@ + + org.apache.maven.plugins + maven-surefire-plugin + 2.12.4 + + + + + + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.7 + + + html + xml + + + org.apache.maven.plugins maven-site-plugin @@ -201,12 +223,36 @@ + + org.apache.maven.plugins + maven-assembly-plugin + 2.4.1 + + + + jar-with-dependencies + + + kafka11aaf + + + + make-assembly + + package + + single + + + + + UTF-8 - 0.0.1 + 0.0.2 /content/sites/site/org/onap/dmaap/kafka0111/${project.artifactId}/${project.version} true true @@ -223,6 +269,53 @@ + + org.onap.aaf.authz + aaf-cadi-aaf + 2.1.2-SNAPSHOT + + + org.slf4j + slf4j-api + 1.7.2 + + + org.slf4j + slf4j-simple + 1.7.2 + runtime + + + org.apache.kafka + kafka_2.11 + 0.11.0.3 + + + org.powermock + powermock-api-mockito + 1.6.4 + test + + + + org.powermock + powermock-module-junit4 + 1.6.4 + test + + + + org.powermock + powermock-module-junit4-rule + 1.6.4 + test + + + org.mockito + mockito-core + 1.10.19 + test + diff --git a/src/main/docker/Dockerfile b/src/main/docker/Dockerfile index 39f997c..102ade0 100644 --- a/src/main/docker/Dockerfile +++ b/src/main/docker/Dockerfile @@ -8,6 +8,13 @@ RUN apk add --update unzip wget curl docker jq coreutils ENV KAFKA_VERSION=$kafka_version SCALA_VERSION=$scala_version ADD download-kafka.sh /tmp/download-kafka.sh +ADD kafka_server_jaas.conf /tmp/kafka_server_jaas.conf +ADD truststoreONAPall.jks /tmp/truststoreONAPall.jks +ADD org.onap.dmaap.mr.p12 /tmp/org.onap.dmaap.mr.p12 +ADD keyfilenew /tmp/keyfilenew +ADD cadi.properties /tmp/cadi.properties +ADD kafka11aaf-jar-with-dependencies.jar /tmp/kafka11aaf-jar-with-dependencies.jar + RUN chmod a+x /tmp/download-kafka.sh && sync && /tmp/download-kafka.sh && tar xfz /tmp/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz -C /opt && rm /tmp/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz && ln -s /opt/kafka_${SCALA_VERSION}-${KAFKA_VERSION} /opt/kafka VOLUME ["/kafka"] diff --git a/src/main/docker/cadi.properties b/src/main/docker/cadi.properties new file mode 100644 index 0000000..01aae97 --- /dev/null +++ b/src/main/docker/cadi.properties @@ -0,0 +1,20 @@ +#aaf_locate_url=https://aaf-onap-test.osaaf.org:8095 +aaf_url=https://AAF_LOCATE_URL/AAF_NS.service:2.1 +aaf_env=DEV +aaf_lur=org.onap.aaf.cadi.aaf.v2_0.AAFLurPerm + +cadi_truststore=/opt/config/truststoreONAPall.jks +cadi_truststore_password=changeit + +cadi_keyfile=/opt/config/keyfilenew + +cadi_alias=dmaapmr@mr.dmaap.onap.org +cadi_keystore=/opt/kafka/org.onap.dmaap.mr.p12 +cadi_keystore_password=Messaging for All +cadi_x509_issuers=CN=intermediateCA_1, OU=OSAAF, O=ONAP, C=US + + +cadi_loglevel=INFO +cadi_protocols=TLSv1.1,TLSv1.2 +cadi_latitude=37.78187 +cadi_longitude=-122.26147 \ No newline at end of file diff --git a/src/main/docker/docker-compose.yml b/src/main/docker/docker-compose.yml deleted file mode 100644 index 04b82c3..0000000 --- a/src/main/docker/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -version: '2' -services: - zookeeper: - image: wurstmeister/zookeeper - ports: - - "2181:2181" - kafka: - build: . - ports: - - "9092" - environment: - KAFKA_ADVERTISED_HOST_NAME: 192.168.99.100 - KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 - volumes: - - /var/run/docker.sock:/var/run/docker.sock diff --git a/src/main/docker/kafka_server_jaas.conf b/src/main/docker/kafka_server_jaas.conf new file mode 100644 index 0000000..163041b --- /dev/null +++ b/src/main/docker/kafka_server_jaas.conf @@ -0,0 +1,5 @@ +KafkaServer { + org.onap.dmaap.kafkaAuthorize.PlainLoginModule1 required + username="admin" + password="admin_secret"; +}; diff --git a/src/main/docker/keyfilenew b/src/main/docker/keyfilenew new file mode 100644 index 0000000..884375f --- /dev/null +++ b/src/main/docker/keyfilenew @@ -0,0 +1,27 @@ +Riwh4gx5yeqp3KFVdmuREXNlB2ie9JSWKRBR08cNhaubYzsoAlCgOYu8g1OuA735u59jaRwAtLxt +5m3aMD5MJZ1ItS4x6CeGCKQ0X3F3OzDRsIv-6iDBhlKdOX9pdR8UF7CBqgqbDmvhg3D-h2JcoYJ4 +uzCPI0ZMXeUELkB3l1ZyhsiDrI892AL_VOxQhhsZk1E3P4UFmhfy_579OCVRVhC38xvL0vrtWkHK +5-1wO3enzrt_p2Jrv-LTgNHTwLF7djyesb55FC9VlTqCrvIomBXvG6NaFuy9_tNJ507ees1_KfTh +4_BVWfZwoXx8ZXWG9_Pu-S8qKn-f8HtgbJnvAW9wze0H7jpRmOQ1nattTqq7sUTgBT-gzzMsFFH9 +61Mwf_OZc41PneLK9ajy8AzvffPVbW_KNssUC96X6DEkzjrk--fN6uE1VMJVK515smSV0bpcbD6e +o5GRC2xaa6t3IpZ6Z4f08Dxgob5oyWPKNYKSdcvIgp_HT6oJ7m4TovOQm23ZuuLsGAz9My1pJn42 +fcug_tR2sVSzTYTO9mEAEfRRhPQAWYpAFxclb08Frd-ZOy9V9epsJwLE1tFxjNX31lkFb5G-i0MP +ZHhtDpIlHM_CvX3tlKrJWMSA91JIfZ0E1mXEkrG9Tzz8jifoijzM_rTvAQf5RQqqAhiuEMSjZeVV +UoKhEp9duhsJCwNelgpjbAvthYa-InQhC9b4FmMWN0QnhUddb8dw_cNOIfuQu8i38qm9MmkGBSD3 +6dS4Ly6XXqAfz7j7TjrqDJfYWaYRa3OkE2I1jxwo-3IUkKLah9gYKX_FkaNlObHN1c1A5uQ4wJVK +FAkd98e4vr3UiY6wuKBgKeE-wwU0mUK1lRVmb5fwrsVmCUPOXO8wZZxtjmJddB08jkACyLbHEMg2 +U5fKBpaqq_9DQxnLvd0-ydNcVxYgiTCB9vsmIJ38maLROARmUtfiuuZD-cwOLnDzRkTmARwwxPks +6ea0cpx-SckhwZHuavq4DLGYbsk-pXToia-M6pPf9rW8qQqeMyUBg4c3--unHBSajT0UxPSbiFrL +9pxwVeUBulB4j1BtLOPhQaAXHTWpD-85n6ecPEYfpIK73_S7fLBfUD1gyQ6tZj4VYjoSfGKAFStE +zCUMvryARBNVFJ0ENq-xKyst_M4V3WjcIeiLW3LmjByk-aymys-e8mUL_tcn_MO9pCktAr1xu5Yx +wBcBOrFlB2UP8Im7vBHbGgf77ssqyxy5_cJhaO9MBKUx5KZQw9eE9ePf6UvELTev7Urhla4QKUm9 +AMemzy2RvC2ghZeh7fzBahbZpRM3vDDm4IhbcZavA2d2DEgq8c0AUhlPYE-LCv2BOKBeUEkGULxU +29uIc8LkcLHh37WHmJOjVbH9gB9enHH0sBf9cnv7A70R1evSWeHn0ty9vVXPOLODSQGqbB40qAhQ +MEsRt-13WUAlHjosA7yj2zHTLMeuSqqPuPeiyGPtblkWUC-gpEJxgK8hTb1LzoZVZeteqgdMKlde +Q0gmI_0CX5RtCjITSlHaKxzw6ly9qqv52GZVpAYlu2SWeFdlCg9txh2ke0x3rTMKsM8i0ccCdmLq +E60akH2bPa4vB7zRiu3im-IVli9V8zz8U2roQrfN08IJCAatSQRVfUiyAAJkOEcghuHmaErA-kD8 +fu0sWuAHsEgKBtfaeOu5OFeyeLmNRiPKpVotMyDHrEjjBW-TVTppWwgN5Utmx80RghSmzwUjglyG +3aaM3iJqp8xvgtlLtoJkq2A8rMbw0eAQ7I33hAn-jfBkmjsVkzsVgffe5xqGA1DDYm1lTkv4OjFX +_tTzYfN2V1BtYNUN_edhQRMsNh5-mpZwOeb5JpdJQFZUXaFtwDedx_sqe54NEJ4jV7w4up7H0MXp +WTazMQmwRzsLTs1U8zeJ0Ib0LAb4EsX6DML3Ue87nmYCj450KE9DM0tYGWn13jiGWoDEhW4noi2X +gkcjwIcM-87wwvsb-rMIOdo2DXQee8zKzB51N4YAn4VBUfjXVMhjjSwg40yHlzKQE0hAOuJN \ No newline at end of file diff --git a/src/main/docker/org.onap.dmaap.mr.p12 b/src/main/docker/org.onap.dmaap.mr.p12 new file mode 100644 index 0000000000000000000000000000000000000000..79549edf65e2bb7984b75a454f2ba6b268f32305 GIT binary patch literal 4056 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 fzfvg9`=8DPJTww> $KAFKA_HOME/config/server.properties +echo "security.inter.broker.protocol=SASL_PLAINTEXT" >> $KAFKA_HOME/config/server.properties +echo "sasl.enabled.mechanisms=PLAIN" >> $KAFKA_HOME/config/server.properties +echo "sasl.mechanism.inter.broker.protocol=PLAIN" >> $KAFKA_HOME/config/server.properties exec $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties diff --git a/src/main/docker/truststoreONAPall.jks b/src/main/docker/truststoreONAPall.jks new file mode 100644 index 0000000000000000000000000000000000000000..2da1dcc4b470e1d4a8a52898573aa24cb59e060a GIT binary patch literal 114865 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 { + private static final Map AUTHORIZATION_PROVIDER_MAP = new HashMap(); + private static final AuthorizationProviderFactory AUTHORIZATION_PROVIDER_FACTORY = new AuthorizationProviderFactory(); + + private AuthorizationProviderFactory() { + try { + ServiceLoader serviceLoader = ServiceLoader.load(AuthorizationProvider.class); + for (AuthorizationProvider authzProvider : serviceLoader) { + AUTHORIZATION_PROVIDER_MAP.put(authzProvider.getId(), authzProvider); + + } + } catch (Exception ee) { + System.out.println(ee); + System.exit(0); + } + } + + public static AuthorizationProviderFactory getProviderFactory() { + return AUTHORIZATION_PROVIDER_FACTORY; + } + + public AuthorizationProvider getProvider() { + return AUTHORIZATION_PROVIDER_MAP.get(System.getProperty("kafka.authorization.provider", "CADI_AAF_PROVIDER")); + } +} diff --git a/src/main/java/org/onap/dmaap/commonauth/kafka/base/authorization/Cadi3AAFProvider.java b/src/main/java/org/onap/dmaap/commonauth/kafka/base/authorization/Cadi3AAFProvider.java new file mode 100644 index 0000000..60c1868 --- /dev/null +++ b/src/main/java/org/onap/dmaap/commonauth/kafka/base/authorization/Cadi3AAFProvider.java @@ -0,0 +1,158 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 +* + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + * + *******************************************************************************/ +package org.onap.dmaap.commonauth.kafka.base.authorization; + +import java.io.FileInputStream; +import java.io.IOException; +import java.util.Properties; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.onap.aaf.cadi.CadiException; +import org.onap.aaf.cadi.PropAccess; +import org.onap.aaf.cadi.aaf.AAFPermission; +import org.onap.aaf.cadi.aaf.v2_0.AAFAuthn; +import org.onap.aaf.cadi.aaf.v2_0.AAFCon; +import org.onap.aaf.cadi.aaf.v2_0.AAFConHttp; +import org.onap.aaf.cadi.aaf.v2_0.AbsAAFLur; +import org.onap.aaf.cadi.principal.UnAuthPrincipal; + +public class Cadi3AAFProvider implements AuthorizationProvider { + + private static PropAccess access; + private static AAFCon aafcon; + private static final String CADI_PROPERTIES = "/opt/kafka/config/cadi.properties"; + private static final String AAF_LOCATOR_ENV = "aaf_locate_url"; + private static final String MR_NAMESPACE = " org.onap.dmaap.mr"; + + public static AAFAuthn getAafAuthn() throws CadiException { + if (aafAuthn == null) { + throw new CadiException("Cadi is uninitialized in Cadi3AAFProvider.getAafAuthn()"); + } + return aafAuthn; + } + + private static AAFAuthn aafAuthn; + private static AbsAAFLur aafLur; + + private static boolean props_ok = false; + + private static final Logger logger = LoggerFactory.getLogger(Cadi3AAFProvider.class); + + public Cadi3AAFProvider() { + setup(); + } + + private synchronized void setup() { + if (access == null) { + + Properties props = new Properties(); + FileInputStream fis = null; + try { + if (System.getProperty("CADI_PROPERTIES") != null) { + fis = new FileInputStream(System.getProperty("CADI_PROPERTIES")); + } else { + fis = new FileInputStream(CADI_PROPERTIES); + } + try { + props.load(fis); + if (System.getenv(AAF_LOCATOR_ENV) != null) + props.setProperty(AAF_LOCATOR_ENV, System.getenv(AAF_LOCATOR_ENV)); + access = new PropAccess(props); + } finally { + fis.close(); + } + } catch (IOException e) { + logger.error("Unable to load " + CADI_PROPERTIES); + logger.error("Error", e); + } + + props_ok = true; + if (props_ok == false) { + return; + } + } + + if (aafAuthn == null) { + try { + aafcon = new AAFConHttp(access); + aafAuthn = aafcon.newAuthn(); + aafLur = aafcon.newLur(aafAuthn); + } catch (final Exception e) { + aafAuthn = null; + if (access != null) + access.log(e, "Failed to initialize AAF"); + props_ok = false; + } + } + + } + + /** + * Checks if a user has a particular permission + *

+ * Returns true if the permission in found + */ + public boolean hasPermission(String userId, String permission, String instance, String action) { + boolean hasPermission = false; + try { + logger.info("^ Event at hasPermission to validate userid " + userId + " with " + permission + " " + instance + + " " + action); + // AAF Style permissions are in the form + // Resource Name, Resource Type, Action + if (userId.equals("admin")) { + hasPermission = true; + return hasPermission; + } + AAFPermission perm = new AAFPermission(MR_NAMESPACE, permission, instance, action); + if (aafLur != null) { + hasPermission = aafLur.fish(new UnAuthPrincipal(userId), perm); + logger.trace("Permission: " + perm.getKey() + " for user :" + userId + " found: " + hasPermission); + } else { + logger.error("AAF client not initialized. Not able to find permissions."); + } + } catch (Exception e) { + logger.error("AAF client not initialized", e); + } + return hasPermission; + } + + public String getId() { + return "CADI_AAF_PROVIDER"; + } + + public String authenticate(String userId, String password) throws Exception { + logger.info("^Event received with username " + userId); + if (userId.equals("admin")) { + logger.info("User Admin by passess AAF call ...."); + return null; + } + String aafResponse = aafAuthn.validate(userId, password); + logger.info("aafResponse=" + aafResponse + " for " + userId); + + if (aafResponse != null) { + logger.error("Authentication failed for user ." + userId); + } + return aafResponse; + } + +} diff --git a/src/main/java/org/onap/dmaap/kafkaAuthorize/KafkaCustomAuthorizer.java b/src/main/java/org/onap/dmaap/kafkaAuthorize/KafkaCustomAuthorizer.java new file mode 100644 index 0000000..cb33e29 --- /dev/null +++ b/src/main/java/org/onap/dmaap/kafkaAuthorize/KafkaCustomAuthorizer.java @@ -0,0 +1,153 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 +* + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + * + *******************************************************************************/ +package org.onap.dmaap.kafkaAuthorize; + +import java.util.Map; + +import org.apache.kafka.common.security.auth.KafkaPrincipal; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.onap.aaf.cadi.PropAccess; +import org.onap.dmaap.commonauth.kafka.base.authorization.AuthorizationProviderFactory; +import kafka.network.RequestChannel.Session; +import kafka.security.auth.Acl; +import kafka.security.auth.Authorizer; +import kafka.security.auth.Operation; +import kafka.security.auth.Resource; +import scala.collection.immutable.Set; + +/** + * A trivial Kafka Authorizer for use with SSL and AAF + * Authentication/Authorization. + * + */ +public class KafkaCustomAuthorizer implements Authorizer { + private PropAccess access; + private static final Logger logger = LoggerFactory.getLogger(KafkaCustomAuthorizer.class); + + // I'm assuming this is called BEFORE any usage... + @Override + public void configure(final Map arg0) { + // TODO Auto-generate method stub + } + + @Override + public void addAcls(final Set arg0, final Resource arg1) { + // TODO Auto-generated method stub + + } + + @Override + public boolean authorize(final Session arg0, final Operation arg1, final Resource arg2) { + if (arg0.principal() == null) { + return false; + } + + String fullName = arg0.principal().getName(); + fullName = fullName != null ? fullName.trim() : fullName; + String topicName = null; + String namspace = null; + String ins = null; + String type = null; + String action = null; + + String kafkaactivity = arg1.name(); + + if (kafkaactivity.equals("Read")) { + action = "sub"; + } else if (kafkaactivity.equals("Write")) { + action = "pub"; + } else if (kafkaactivity.equals("Describe")) { + return true; + } + if (arg2.resourceType().name().equals("Topic")) { + topicName = arg2.name(); + } else { + return true; + } + + try { + + if (null != topicName && topicName.indexOf(".") > 0) { + namspace = topicName.substring(0, topicName.lastIndexOf(".")); + ins = namspace + ".topic"; + type = ":topic." + topicName; + logger.info("^Event Received for topic " + topicName + " , User " + fullName + " , action = " + action); + } + + if (fullName.equals("admin")) { + return true; + } + + if (null != topicName) { + boolean hasResp = AuthorizationProviderFactory.getProviderFactory().getProvider() + .hasPermission(fullName, ins, type, action); + if (hasResp) { + logger.info("Successful Authorization for " + fullName + " on " + topicName + " for " + ins + "|" + + type + "|" + action); + } + if (!hasResp) { + logger.info(fullName + " is not allowed in " + ins + "|" + type + "|" + action); + throw new Exception(fullName + " is not allowed in " + ins + "|" + type + "|" + action); + } + } + } catch (final Exception e) { + return false; + } + return true; + } + + @Override + public void close() { + // TODO Auto-generated method stub + + } + + @Override + public scala.collection.immutable.Map> getAcls() { + // TODO Auto-generated method stub + return null; + } + + @Override + public scala.collection.immutable.Map> getAcls(final KafkaPrincipal arg0) { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean removeAcls(final Resource arg0) { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean removeAcls(final Set arg0, final Resource arg1) { + // TODO Auto-generated method stub + return false; + } + + public Set getAcls(Resource arg0) { + // TODO Auto-generated method stub + return null; + } +} diff --git a/src/main/java/org/onap/dmaap/kafkaAuthorize/PlainLoginModule1.java b/src/main/java/org/onap/dmaap/kafkaAuthorize/PlainLoginModule1.java new file mode 100644 index 0000000..dd21682 --- /dev/null +++ b/src/main/java/org/onap/dmaap/kafkaAuthorize/PlainLoginModule1.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 +* + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + * + *******************************************************************************/ +package org.onap.dmaap.kafkaAuthorize; + +import java.util.Map; + +import javax.security.auth.Subject; +import javax.security.auth.callback.CallbackHandler; +import javax.security.auth.login.LoginException; +import javax.security.auth.spi.LoginModule; + +public class PlainLoginModule1 implements LoginModule { + + private static final String USERNAME_CONFIG = "username"; + private static final String PASSWORD_CONFIG = "password"; + + static { + PlainSaslServerProvider1.initialize(); + } + + @Override + public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, + Map options) { + String username = (String) options.get(USERNAME_CONFIG); + if (username != null) + subject.getPublicCredentials().add(username); + String password = (String) options.get(PASSWORD_CONFIG); + if (password != null) + subject.getPrivateCredentials().add(password); + + } + + @Override + public boolean login() throws LoginException { + return true; + } + + @Override + public boolean logout() throws LoginException { + return true; + } + + @Override + public boolean commit() throws LoginException { + return true; + } + + @Override + public boolean abort() throws LoginException { + return false; + } +} diff --git a/src/main/java/org/onap/dmaap/kafkaAuthorize/PlainSaslServer1.java b/src/main/java/org/onap/dmaap/kafkaAuthorize/PlainSaslServer1.java new file mode 100644 index 0000000..f28671b --- /dev/null +++ b/src/main/java/org/onap/dmaap/kafkaAuthorize/PlainSaslServer1.java @@ -0,0 +1,185 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 +* + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + * + *******************************************************************************/ +package org.onap.dmaap.kafkaAuthorize; + +import java.io.UnsupportedEncodingException; +import java.util.Arrays; +import java.util.Map; + +import javax.security.auth.callback.CallbackHandler; +import javax.security.sasl.Sasl; +import javax.security.sasl.SaslException; +import javax.security.sasl.SaslServer; +import javax.security.sasl.SaslServerFactory; + +import org.apache.kafka.common.security.JaasContext; +import org.apache.kafka.common.security.authenticator.SaslServerCallbackHandler; + +import org.onap.dmaap.commonauth.kafka.base.authorization.AuthorizationProviderFactory; + +/** + * Simple SaslServer implementation for SASL/PLAIN. In order to make this + * implementation fully pluggable, authentication of username/password is fully + * contained within the server implementation. + *

+ * Valid users with passwords are specified in the Jaas configuration file. Each + * user is specified with user_ as key and as value. This + * is consistent with Zookeeper Digest-MD5 implementation. + *

+ * To avoid storing clear passwords on disk or to integrate with external + * authentication servers in production systems, this module can be replaced + * with a different implementation. + * + */ +public class PlainSaslServer1 implements SaslServer { + + public static final String PLAIN_MECHANISM = "PLAIN"; + + private final JaasContext jaasContext; + + private boolean complete; + private String authorizationID; + + public PlainSaslServer1(JaasContext jaasContext) { + this.jaasContext = jaasContext; + } + + @Override + public byte[] evaluateResponse(byte[] response) throws SaslException { + /* + * Message format (from https://tools.ietf.org/html/rfc4616): + * + * message = [authzid] UTF8NUL authcid UTF8NUL passwd authcid = 1*SAFE ; + * MUST accept up to 255 octets authzid = 1*SAFE ; MUST accept up to 255 + * octets passwd = 1*SAFE ; MUST accept up to 255 octets UTF8NUL = %x00 + * ; UTF-8 encoded NUL character + * + * SAFE = UTF1 / UTF2 / UTF3 / UTF4 ;; any UTF-8 encoded Unicode + * character except NUL + */ + + String[] tokens; + try { + tokens = new String(response, "UTF-8").split("\u0000"); + } catch (UnsupportedEncodingException e) { + throw new SaslException("UTF-8 encoding not supported", e); + } + if (tokens.length != 3) + throw new SaslException("Invalid SASL/PLAIN response: expected 3 tokens, got " + tokens.length); + authorizationID = tokens[0]; + String username = tokens[1]; + String password = tokens[2]; + + if (username.isEmpty()) { + throw new SaslException("Authentication failed: username not specified"); + } + if (password.isEmpty()) { + throw new SaslException("Authentication failed: password not specified"); + } + if (authorizationID.isEmpty()) + authorizationID = username; + + String aafResponse = "Not Verified"; + try { + aafResponse = AuthorizationProviderFactory.getProviderFactory().getProvider().authenticate(username, + password); + } catch (Exception e) { + } + + if (null != aafResponse) { + throw new SaslException("Authentication failed: " + aafResponse + " User " + username); + } + + complete = true; + return new byte[0]; + } + + @Override + public String getAuthorizationID() { + if (!complete) + throw new IllegalStateException("Authentication exchange has not completed"); + return authorizationID; + } + + @Override + public String getMechanismName() { + return PLAIN_MECHANISM; + } + + @Override + public Object getNegotiatedProperty(String propName) { + if (!complete) + throw new IllegalStateException("Authentication exchange has not completed"); + return null; + } + + @Override + public boolean isComplete() { + return complete; + } + + @Override + public byte[] unwrap(byte[] incoming, int offset, int len) throws SaslException { + if (!complete) + throw new IllegalStateException("Authentication exchange has not completed"); + return Arrays.copyOfRange(incoming, offset, offset + len); + } + + @Override + public byte[] wrap(byte[] outgoing, int offset, int len) throws SaslException { + if (!complete) + throw new IllegalStateException("Authentication exchange has not completed"); + return Arrays.copyOfRange(outgoing, offset, offset + len); + } + + @Override + public void dispose() throws SaslException { + } + + public static class PlainSaslServerFactory1 implements SaslServerFactory { + + @Override + public SaslServer createSaslServer(String mechanism, String protocol, String serverName, Map props, + CallbackHandler cbh) throws SaslException { + + if (!PLAIN_MECHANISM.equals(mechanism)) + throw new SaslException( + String.format("Mechanism \'%s\' is not supported. Only PLAIN is supported.", mechanism)); + + if (!(cbh instanceof SaslServerCallbackHandler)) + throw new SaslException( + "CallbackHandler must be of type SaslServerCallbackHandler, but it is: " + cbh.getClass()); + + return new PlainSaslServer1(((SaslServerCallbackHandler) cbh).jaasContext()); + } + + @Override + public String[] getMechanismNames(Map props) { + if (props == null) + return new String[] { PLAIN_MECHANISM }; + String noPlainText = (String) props.get(Sasl.POLICY_NOPLAINTEXT); + if ("true".equals(noPlainText)) + return new String[] {}; + else + return new String[] { PLAIN_MECHANISM }; + } + } +} diff --git a/src/main/java/org/onap/dmaap/kafkaAuthorize/PlainSaslServerProvider1.java b/src/main/java/org/onap/dmaap/kafkaAuthorize/PlainSaslServerProvider1.java new file mode 100644 index 0000000..16a11f4 --- /dev/null +++ b/src/main/java/org/onap/dmaap/kafkaAuthorize/PlainSaslServerProvider1.java @@ -0,0 +1,40 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 +* + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + * + *******************************************************************************/ +package org.onap.dmaap.kafkaAuthorize; + +import java.security.Provider; +import java.security.Security; + +import org.onap.dmaap.kafkaAuthorize.PlainSaslServer1.PlainSaslServerFactory1; + +public class PlainSaslServerProvider1 extends Provider { + + private static final long serialVersionUID = 1L; + + protected PlainSaslServerProvider1() { + super("Simple SASL/PLAIN Server Provider", 1.0, "Simple SASL/PLAIN Server Provider for Kafka"); + super.put("SaslServerFactory." + PlainSaslServer1.PLAIN_MECHANISM, PlainSaslServerFactory1.class.getName()); + } + + public static void initialize() { + Security.addProvider(new PlainSaslServerProvider1()); + } +} diff --git a/src/main/resources/META-INF/services/org.onap.dmaap.commonauth.kafka.base.authorization.AuthorizationProvider b/src/main/resources/META-INF/services/org.onap.dmaap.commonauth.kafka.base.authorization.AuthorizationProvider new file mode 100644 index 0000000..0388ce7 --- /dev/null +++ b/src/main/resources/META-INF/services/org.onap.dmaap.commonauth.kafka.base.authorization.AuthorizationProvider @@ -0,0 +1 @@ +org.onap.dmaap.commonauth.kafka.base.authorization.Cadi3AAFProvider \ No newline at end of file diff --git a/src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/AuthorizationProviderFactoryTest.java b/src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/AuthorizationProviderFactoryTest.java new file mode 100644 index 0000000..4ac81f3 --- /dev/null +++ b/src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/AuthorizationProviderFactoryTest.java @@ -0,0 +1,36 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 +* + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + * + *******************************************************************************/ +package org.onap.dmaap.commonauth.kafka.base.authorization; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +public class AuthorizationProviderFactoryTest { + + @Test + public void testFactory() { + AuthorizationProviderFactory.getProviderFactory().getProvider(); + + } + +} diff --git a/src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/Cadi3AAFProviderTest.java b/src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/Cadi3AAFProviderTest.java new file mode 100644 index 0000000..fbe1e59 --- /dev/null +++ b/src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/Cadi3AAFProviderTest.java @@ -0,0 +1,76 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 +* + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + * + *******************************************************************************/ +package org.onap.dmaap.commonauth.kafka.base.authorization; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.when; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.onap.aaf.cadi.PropAccess; +import org.onap.aaf.cadi.aaf.v2_0.AAFAuthn; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +public class Cadi3AAFProviderTest { + + public Cadi3AAFProvider cadi3AAFProvider; + + @Mock + private static AAFAuthn aafAuthn; + + @Mock + private static PropAccess access; + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + } + + @Test + public void testHasPermission() { + System.setProperty("CADI_PROPERTIES", "src/test/resources/cadi.properties"); + cadi3AAFProvider = new Cadi3AAFProvider(); + assertFalse(cadi3AAFProvider.hasPermission("userID", "permission", "instance", "action")); + } + + @Test(expected = NullPointerException.class) + public void tesAuthenticate() throws Exception { + System.setProperty("CADI_PROPERTIES", "src/test/resources/cadi.properties"); + cadi3AAFProvider = new Cadi3AAFProvider(); + when(aafAuthn.validate("userId", "password")).thenReturn("valid"); + assertEquals(cadi3AAFProvider.authenticate("userId", "password"), "valid"); + } + + @Test + public void tesAuthenticateadmin() throws Exception { + System.setProperty("CADI_PROPERTIES", "src/test/resources/cadi.properties"); + cadi3AAFProvider = new Cadi3AAFProvider(); + when(aafAuthn.validate("admin", "password")).thenReturn("valid"); + assertNull(cadi3AAFProvider.authenticate("admin", "password")); + } + +} diff --git a/src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/JUnitTestSuite.java b/src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/JUnitTestSuite.java new file mode 100644 index 0000000..e9b52d1 --- /dev/null +++ b/src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/JUnitTestSuite.java @@ -0,0 +1,41 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP Policy Engine + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.dmaap.commonauth.kafka.base.authorization; + +import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; +import org.apache.log4j.Logger; + +@RunWith(Suite.class) +@SuiteClasses({ AuthorizationProviderFactoryTest.class, Cadi3AAFProviderTest.class }) +public class JUnitTestSuite { + private static final Logger LOGGER = Logger.getLogger(JUnitTestSuite.class); + + public static void main(String[] args) { + LOGGER.info("Running the test suite"); + + TestSuite tstSuite = new TestSuite(); + LOGGER.info("Total Test Counts " + tstSuite.countTestCases()); + } + +} diff --git a/src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/TestRunner.java b/src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/TestRunner.java new file mode 100644 index 0000000..7f7ea11 --- /dev/null +++ b/src/test/java/org/onap/dmaap/commonauth/kafka/base/authorization/TestRunner.java @@ -0,0 +1,41 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP Policy Engine + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.dmaap.commonauth.kafka.base.authorization; + +import org.junit.runner.JUnitCore; +import org.junit.runner.Result; +import org.junit.runner.notification.Failure; +import org.apache.log4j.Logger; + +public class TestRunner { + private static final Logger LOGGER = Logger.getLogger(TestRunner.class); + + public static void main(String[] args) { + // TODO Auto-generated method stub + Result result = JUnitCore.runClasses(JUnitTestSuite.class); + for (Failure failure : result.getFailures()) { + LOGGER.info(failure.toString()); + + } + LOGGER.info(result.wasSuccessful()); + } + +} diff --git a/src/test/java/org/onap/dmaap/kafkaAuthorize/JUnitTestSuite.java b/src/test/java/org/onap/dmaap/kafkaAuthorize/JUnitTestSuite.java new file mode 100644 index 0000000..d52c8bc --- /dev/null +++ b/src/test/java/org/onap/dmaap/kafkaAuthorize/JUnitTestSuite.java @@ -0,0 +1,41 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP Policy Engine + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.dmaap.kafkaAuthorize; + +import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; +import org.apache.log4j.Logger; + +@RunWith(Suite.class) +@SuiteClasses({ KafkaCustomAuthorizerTest.class, PlainSaslServer1Test.class }) +public class JUnitTestSuite { + private static final Logger LOGGER = Logger.getLogger(JUnitTestSuite.class); + + public static void main(String[] args) { + LOGGER.info("Running the test suite"); + + TestSuite tstSuite = new TestSuite(); + LOGGER.info("Total Test Counts " + tstSuite.countTestCases()); + } + +} diff --git a/src/test/java/org/onap/dmaap/kafkaAuthorize/KafkaCustomAuthorizerTest.java b/src/test/java/org/onap/dmaap/kafkaAuthorize/KafkaCustomAuthorizerTest.java new file mode 100644 index 0000000..3075327 --- /dev/null +++ b/src/test/java/org/onap/dmaap/kafkaAuthorize/KafkaCustomAuthorizerTest.java @@ -0,0 +1,99 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 +* + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + * + *******************************************************************************/ +package org.onap.dmaap.kafkaAuthorize; + +import static org.junit.Assert.assertTrue; + +import org.apache.kafka.common.security.auth.KafkaPrincipal; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.onap.dmaap.commonauth.kafka.base.authorization.AuthorizationProvider; +import org.onap.dmaap.commonauth.kafka.base.authorization.AuthorizationProviderFactory; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +import kafka.network.RequestChannel.Session; +import kafka.security.auth.Operation; +import kafka.security.auth.Resource; +import kafka.security.auth.ResourceType; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({ AuthorizationProviderFactory.class }) +public class KafkaCustomAuthorizerTest { + @Mock + Session arg0; + @Mock + Operation arg1; + @Mock + Resource arg2; + @Mock + KafkaPrincipal principal; + @Mock + ResourceType resourceType; + @Mock + AuthorizationProviderFactory factory; + @Mock + AuthorizationProvider provider; + + KafkaCustomAuthorizer authorizer = new KafkaCustomAuthorizer(); + + @Before + public void setUp() throws Exception { + + MockitoAnnotations.initMocks(this); + PowerMockito.when(principal.getName()).thenReturn("fullName"); + PowerMockito.when(arg0.principal()).thenReturn(principal); + PowerMockito.when(arg1.name()).thenReturn("Write"); + PowerMockito.when(resourceType.name()).thenReturn("Topic"); + PowerMockito.when(arg2.resourceType()).thenReturn(resourceType); + PowerMockito.when(arg2.name()).thenReturn("namespace.Topic"); + PowerMockito.mockStatic(AuthorizationProviderFactory.class); + PowerMockito.when(AuthorizationProviderFactory.getProviderFactory()).thenReturn(factory); + PowerMockito.when(factory.getProvider()).thenReturn(provider); + + } + + @Test + public void testAuthorizerSuccess() { + PowerMockito.when(provider.hasPermission("fullName", "namespace.topic", ":topic.namespace.Topic", "pub")) + .thenReturn(true); + assertTrue(authorizer.authorize(arg0, arg1, arg2)); + + } + + @Test + public void testAuthorizerFailure() { + + PowerMockito.when(provider.hasPermission("fullName", "namespace.topic", ":topic.namespace.Topic", "pub")) + .thenReturn(false); + try { + authorizer.authorize(arg0, arg1, arg2); + } catch (Exception e) { + assertTrue(true); + } + + } + +} diff --git a/src/test/java/org/onap/dmaap/kafkaAuthorize/PlainSaslServer1Test.java b/src/test/java/org/onap/dmaap/kafkaAuthorize/PlainSaslServer1Test.java new file mode 100644 index 0000000..8826f17 --- /dev/null +++ b/src/test/java/org/onap/dmaap/kafkaAuthorize/PlainSaslServer1Test.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * org.onap.dmaap + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 +* + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + * + *******************************************************************************/ +package org.onap.dmaap.kafkaAuthorize; + +import static org.junit.Assert.assertNotNull; + +import javax.security.sasl.SaslException; + +import org.apache.kafka.common.security.JaasContext; +import org.apache.kafka.common.security.plain.PlainSaslServer; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.onap.dmaap.commonauth.kafka.base.authorization.AuthorizationProvider; +import org.onap.dmaap.commonauth.kafka.base.authorization.AuthorizationProviderFactory; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({ AuthorizationProviderFactory.class }) +public class PlainSaslServer1Test { + + PlainSaslServer1 sslServer = new PlainSaslServer1(null); + @Mock + JaasContext jaasContext; + @Mock + AuthorizationProviderFactory factory; + @Mock + AuthorizationProvider provider; + + @Before + public void setUp() throws Exception { + + MockitoAnnotations.initMocks(this); + PowerMockito.mockStatic(AuthorizationProviderFactory.class); + PowerMockito.when(AuthorizationProviderFactory.getProviderFactory()).thenReturn(factory); + PowerMockito.when(factory.getProvider()).thenReturn(provider); + } + + @Test + public void testAuthentication() throws Exception { + String response = "authorizationID\u0000username\u0000password"; + PowerMockito.when(provider.authenticate("username", "password")).thenReturn(null); + assertNotNull(sslServer.evaluateResponse(response.getBytes())); + + } +} diff --git a/src/test/java/org/onap/dmaap/kafkaAuthorize/TestRunner.java b/src/test/java/org/onap/dmaap/kafkaAuthorize/TestRunner.java new file mode 100644 index 0000000..829d18d --- /dev/null +++ b/src/test/java/org/onap/dmaap/kafkaAuthorize/TestRunner.java @@ -0,0 +1,41 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP Policy Engine + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.dmaap.kafkaAuthorize; + +import org.junit.runner.JUnitCore; +import org.junit.runner.Result; +import org.junit.runner.notification.Failure; +import org.apache.log4j.Logger; + +public class TestRunner { + private static final Logger LOGGER = Logger.getLogger(TestRunner.class); + + public static void main(String[] args) { + // TODO Auto-generated method stub + Result result = JUnitCore.runClasses(JUnitTestSuite.class); + for (Failure failure : result.getFailures()) { + LOGGER.info(failure.toString()); + + } + LOGGER.info(result.wasSuccessful()); + } + +} diff --git a/src/test/resources/cadi.properties b/src/test/resources/cadi.properties new file mode 100644 index 0000000..4ce7689 --- /dev/null +++ b/src/test/resources/cadi.properties @@ -0,0 +1,20 @@ +#aaf_locate_url=https://aaf-onap-test.osaaf.org:8095 +aaf_url=https://AAF_LOCATE_URL/AAF_NS.service:2.1 +aaf_env=DEV +aaf_lur=org.onap.aaf.cadi.aaf.v2_0.AAFLurPerm + +cadi_truststore=src/test/resources/truststoreONAPall.jks +cadi_truststore_password=changeit + +cadi_keyfile=src/test/resources/keyfilenew + +cadi_alias=dmaapmr@mr.dmaap.onap.org +cadi_keystore=src/test/resources/org.onap.dmaap.mr.p12 +cadi_keystore_password=Messaging for All +cadi_x509_issuers=CN=intermediateCA_1, OU=OSAAF, O=ONAP, C=US + + +cadi_loglevel=INFO +cadi_protocols=TLSv1.1,TLSv1.2 +cadi_latitude=37.78187 +cadi_longitude=-122.26147 \ No newline at end of file diff --git a/src/test/resources/keyfilenew b/src/test/resources/keyfilenew new file mode 100644 index 0000000..884375f --- /dev/null +++ b/src/test/resources/keyfilenew @@ -0,0 +1,27 @@ +Riwh4gx5yeqp3KFVdmuREXNlB2ie9JSWKRBR08cNhaubYzsoAlCgOYu8g1OuA735u59jaRwAtLxt +5m3aMD5MJZ1ItS4x6CeGCKQ0X3F3OzDRsIv-6iDBhlKdOX9pdR8UF7CBqgqbDmvhg3D-h2JcoYJ4 +uzCPI0ZMXeUELkB3l1ZyhsiDrI892AL_VOxQhhsZk1E3P4UFmhfy_579OCVRVhC38xvL0vrtWkHK +5-1wO3enzrt_p2Jrv-LTgNHTwLF7djyesb55FC9VlTqCrvIomBXvG6NaFuy9_tNJ507ees1_KfTh +4_BVWfZwoXx8ZXWG9_Pu-S8qKn-f8HtgbJnvAW9wze0H7jpRmOQ1nattTqq7sUTgBT-gzzMsFFH9 +61Mwf_OZc41PneLK9ajy8AzvffPVbW_KNssUC96X6DEkzjrk--fN6uE1VMJVK515smSV0bpcbD6e +o5GRC2xaa6t3IpZ6Z4f08Dxgob5oyWPKNYKSdcvIgp_HT6oJ7m4TovOQm23ZuuLsGAz9My1pJn42 +fcug_tR2sVSzTYTO9mEAEfRRhPQAWYpAFxclb08Frd-ZOy9V9epsJwLE1tFxjNX31lkFb5G-i0MP +ZHhtDpIlHM_CvX3tlKrJWMSA91JIfZ0E1mXEkrG9Tzz8jifoijzM_rTvAQf5RQqqAhiuEMSjZeVV +UoKhEp9duhsJCwNelgpjbAvthYa-InQhC9b4FmMWN0QnhUddb8dw_cNOIfuQu8i38qm9MmkGBSD3 +6dS4Ly6XXqAfz7j7TjrqDJfYWaYRa3OkE2I1jxwo-3IUkKLah9gYKX_FkaNlObHN1c1A5uQ4wJVK +FAkd98e4vr3UiY6wuKBgKeE-wwU0mUK1lRVmb5fwrsVmCUPOXO8wZZxtjmJddB08jkACyLbHEMg2 +U5fKBpaqq_9DQxnLvd0-ydNcVxYgiTCB9vsmIJ38maLROARmUtfiuuZD-cwOLnDzRkTmARwwxPks +6ea0cpx-SckhwZHuavq4DLGYbsk-pXToia-M6pPf9rW8qQqeMyUBg4c3--unHBSajT0UxPSbiFrL +9pxwVeUBulB4j1BtLOPhQaAXHTWpD-85n6ecPEYfpIK73_S7fLBfUD1gyQ6tZj4VYjoSfGKAFStE +zCUMvryARBNVFJ0ENq-xKyst_M4V3WjcIeiLW3LmjByk-aymys-e8mUL_tcn_MO9pCktAr1xu5Yx +wBcBOrFlB2UP8Im7vBHbGgf77ssqyxy5_cJhaO9MBKUx5KZQw9eE9ePf6UvELTev7Urhla4QKUm9 +AMemzy2RvC2ghZeh7fzBahbZpRM3vDDm4IhbcZavA2d2DEgq8c0AUhlPYE-LCv2BOKBeUEkGULxU +29uIc8LkcLHh37WHmJOjVbH9gB9enHH0sBf9cnv7A70R1evSWeHn0ty9vVXPOLODSQGqbB40qAhQ +MEsRt-13WUAlHjosA7yj2zHTLMeuSqqPuPeiyGPtblkWUC-gpEJxgK8hTb1LzoZVZeteqgdMKlde +Q0gmI_0CX5RtCjITSlHaKxzw6ly9qqv52GZVpAYlu2SWeFdlCg9txh2ke0x3rTMKsM8i0ccCdmLq +E60akH2bPa4vB7zRiu3im-IVli9V8zz8U2roQrfN08IJCAatSQRVfUiyAAJkOEcghuHmaErA-kD8 +fu0sWuAHsEgKBtfaeOu5OFeyeLmNRiPKpVotMyDHrEjjBW-TVTppWwgN5Utmx80RghSmzwUjglyG +3aaM3iJqp8xvgtlLtoJkq2A8rMbw0eAQ7I33hAn-jfBkmjsVkzsVgffe5xqGA1DDYm1lTkv4OjFX +_tTzYfN2V1BtYNUN_edhQRMsNh5-mpZwOeb5JpdJQFZUXaFtwDedx_sqe54NEJ4jV7w4up7H0MXp +WTazMQmwRzsLTs1U8zeJ0Ib0LAb4EsX6DML3Ue87nmYCj450KE9DM0tYGWn13jiGWoDEhW4noi2X +gkcjwIcM-87wwvsb-rMIOdo2DXQee8zKzB51N4YAn4VBUfjXVMhjjSwg40yHlzKQE0hAOuJN \ No newline at end of file diff --git a/src/test/resources/org.onap.dmaap.mr.p12 b/src/test/resources/org.onap.dmaap.mr.p12 new file mode 100644 index 0000000000000000000000000000000000000000..79549edf65e2bb7984b75a454f2ba6b268f32305 GIT binary patch literal 4056 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 fzfvg9`=8DPJTwwOm$lAck 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