Changes for ONAP AAF
[dmaap/dbcapi.git] / src / main / java / org / onap / dmaap / dbcapi / service / DmaapService.java
index e7d4e04..e2bc379 100644 (file)
@@ -36,6 +36,7 @@ import org.onap.dmaap.dbcapi.aaf.DmaapGrant;
 import org.onap.dmaap.dbcapi.aaf.DmaapPerm;
 import org.onap.dmaap.dbcapi.aaf.AafService.ServiceType;
 import org.onap.dmaap.dbcapi.authentication.ApiPerms;
+import org.onap.dmaap.dbcapi.authentication.ApiPolicy;
 import org.onap.dmaap.dbcapi.database.DatabaseClass;
 import org.onap.dmaap.dbcapi.logging.BaseLoggingClass;
 import org.onap.dmaap.dbcapi.logging.DmaapbcLogMessageEnum;
@@ -51,6 +52,7 @@ public class DmaapService  extends BaseLoggingClass  {
 
        
        private Singleton<Dmaap> dmaapholder = DatabaseClass.getDmaap();
+       private static String noEnvironmentPrefix;
        
        
        String topicFactory; // = "org.openecomp.dcae.dmaap.topicFactory";
@@ -65,6 +67,15 @@ public class DmaapService  extends BaseLoggingClass  {
                topicMgrRole = p.getProperty("MR.TopicMgrRole", "MR.TopicMgrRole.not.set" );
                dcaeTopicNs = dmaapholder.get().getTopicNsRoot();
                multiSite = "true".equalsIgnoreCase(p.getProperty("MR.multisite", "true"));
+               noEnvironmentPrefix = p.getProperty( "AAF.NoEnvironmentPrefix", "org.onap");
+               
+               logger.info( "DmaapService settings: " + 
+                               " topicFactory=" + topicFactory +
+                               " topicMgrRole=" + topicMgrRole +
+                               " dcaeTopicNs=" + dcaeTopicNs +
+                               " multisite=" + multiSite +
+                               " noEnvironmentPrefix=" + noEnvironmentPrefix
+                               );
                
        }
        
@@ -83,8 +94,11 @@ public class DmaapService  extends BaseLoggingClass  {
                        dmaapholder.update(nd);
 
                        AafService aaf = new AafService( ServiceType.AAF_Admin);
-                       ApiPerms p = new ApiPerms();
-                       p.setEnvMap();
+                       ApiPolicy apiPolicy = new ApiPolicy();
+                       if ( apiPolicy.getUseAuthClass() ) {
+                               ApiPerms p = new ApiPerms();
+                               p.setEnvMap();
+                       }
                        boolean anythingWrong = false;
                        
                        if ( multiSite ) {
@@ -122,8 +136,11 @@ public class DmaapService  extends BaseLoggingClass  {
                if ( ! dmaap.isStatusValid()  || ! nd.getDmaapName().equals(dmaap.getDmaapName()) || dmaap.getVersion().equals( "0") ) {
                        nd.setLastMod();
                        dmaapholder.update(nd);  //need to set this so the following perms will pick up any new vals.
-                       ApiPerms p = new ApiPerms();
-                       p.setEnvMap();
+                       ApiPolicy apiPolicy = new ApiPolicy();
+                       if ( apiPolicy.getUseAuthClass()) {
+                               ApiPerms p = new ApiPerms();
+                               p.setEnvMap();
+                       }
                        AafService aaf = new AafService( ServiceType.AAF_Admin);
                        if ( multiSite ) {
                                anythingWrong = setTopicMgtPerms(  nd,  aaf ) || createMmaTopic();
@@ -148,7 +165,15 @@ public class DmaapService  extends BaseLoggingClass  {
        }
        public String getTopicPerm( String val ) {
                Dmaap dmaap = dmaapholder.get();
-               return dmaap.getTopicNsRoot() + "." + val + ".mr.topic";
+               String nsRoot = dmaap.getTopicNsRoot();
+               String t;
+               // in ONAP Casablanca, we assume no distinction of environments reflected in topic namespace
+               if ( nsRoot.startsWith(noEnvironmentPrefix) ) {
+                       t = nsRoot +  ".mr.topic";
+               } else {
+                       t = nsRoot + "." + val + ".mr.topic";
+               }
+               return t;
        }
        
        public String getBridgeAdminFqtn(){