ONOS-3521: SM-ONOS performance improvement
Change-Id: I8643187f2ceb35f8e0701d9e7ddb10098f05b244
diff --git a/core/security/src/main/java/org/onosproject/security/impl/DefaultPolicyBuilder.java b/core/security/src/main/java/org/onosproject/security/impl/DefaultPolicyBuilder.java
index b043765..1fbb7c8 100644
--- a/core/security/src/main/java/org/onosproject/security/impl/DefaultPolicyBuilder.java
+++ b/core/security/src/main/java/org/onosproject/security/impl/DefaultPolicyBuilder.java
@@ -54,11 +54,12 @@
import org.onosproject.security.SecurityAdminService;
import org.onosproject.store.service.StorageAdminService;
import org.onosproject.store.service.StorageService;
-import org.osgi.framework.BundlePermission;
-import org.osgi.framework.CapabilityPermission;
import org.osgi.framework.ServicePermission;
-import org.osgi.framework.PackagePermission;
+import org.osgi.framework.AdminPermission;
import org.osgi.framework.AdaptPermission;
+import org.osgi.framework.CapabilityPermission;
+import org.osgi.framework.BundlePermission;
+import org.osgi.framework.PackagePermission;
import org.osgi.service.cm.ConfigurationPermission;
import javax.net.ssl.SSLPermission;
@@ -68,6 +69,7 @@
import javax.sound.sampled.AudioPermission;
import java.io.FilePermission;
import java.io.SerializablePermission;
+import java.lang.reflect.ReflectPermission;
import java.net.NetPermission;
import java.net.SocketPermission;
import java.security.Permissions;
@@ -159,6 +161,7 @@
permSet.add(new PackagePermission("*", PackagePermission.IMPORT));
permSet.add(new AdaptPermission("*", AdaptPermission.ADAPT));
permSet.add(new ConfigurationPermission("*", ConfigurationPermission.CONFIGURE));
+ permSet.add(new AdminPermission("*", AdminPermission.METADATA));
return permSet;
}
@@ -359,6 +362,12 @@
} else if (permission instanceof ServicePermission) {
return new org.onosproject.security.Permission(
ServicePermission.class.getName(), permission.getName(), permission.getActions());
+ } else if (permission instanceof AdminPermission) {
+ return new org.onosproject.security.Permission(
+ AdminPermission.class.getName(), permission.getName(), permission.getActions());
+ } else if (permission instanceof ConfigurationPermission) {
+ return new org.onosproject.security.Permission(
+ ConfigurationPermission.class.getName(), permission.getName(), permission.getActions());
}
return null;
}
@@ -416,10 +425,16 @@
return new PackagePermission(name, actions);
} else if (ServicePermission.class.getName().equals(classname)) {
return new ServicePermission(name, actions);
+ } else if (AdminPermission.class.getName().equals(classname)) {
+ return new AdminPermission(name, actions);
+ } else if (ConfigurationPermission.class.getName().equals(classname)) {
+ return new ConfigurationPermission(name, actions);
+ } else if (ReflectPermission.class.getName().equals(classname)) {
+ return new ReflectPermission(name, actions);
}
//AllPermission, SecurityPermission, UnresolvedPermission
- //AWTPermission, AdminPermission(osgi), ReflectPermission not allowed
+ //AWTPermission, ReflectPermission not allowed
return null;
}
@@ -444,5 +459,4 @@
}
return permissions;
}
-}
-
+}
\ No newline at end of file