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
diff --git a/core/security/src/main/java/org/onosproject/security/impl/SecurityModeManager.java b/core/security/src/main/java/org/onosproject/security/impl/SecurityModeManager.java
index 325f49b..f928dd6 100644
--- a/core/security/src/main/java/org/onosproject/security/impl/SecurityModeManager.java
+++ b/core/security/src/main/java/org/onosproject/security/impl/SecurityModeManager.java
@@ -92,16 +92,12 @@
private PermissionAdmin permissionAdmin = getPermissionAdmin();
-
@Activate
public void activate() {
eventDispatcher.addSink(SecurityModeEvent.class, listenerRegistry);
- // add Listeners
logReaderService.addLogListener(securityLogListener);
- store.setDelegate(delegate);
-
if (System.getSecurityManager() == null) {
log.warn("J2EE security manager is disabled.");
deactivate();
@@ -112,6 +108,7 @@
deactivate();
return;
}
+ store.setDelegate(delegate);
log.info("Security-Mode Started");
}
@@ -302,4 +299,6 @@
return FrameworkUtil.getBundle(this.getClass()).getBundleContext();
}
+
+
}
\ No newline at end of file
diff --git a/core/security/src/main/java/org/onosproject/security/store/DistributedSecurityModeStore.java b/core/security/src/main/java/org/onosproject/security/store/DistributedSecurityModeStore.java
index 925298c..b880ffd 100644
--- a/core/security/src/main/java/org/onosproject/security/store/DistributedSecurityModeStore.java
+++ b/core/security/src/main/java/org/onosproject/security/store/DistributedSecurityModeStore.java
@@ -303,14 +303,4 @@
}
return locations;
}
-
- @Override
- public void setDelegate(SecurityModeStoreDelegate delegate) {
- super.setDelegate(delegate);
- }
-
- @Override
- public void unsetDelegate(SecurityModeStoreDelegate delegate) {
- super.setDelegate(delegate);
- }
}
diff --git a/core/security/src/main/java/org/onosproject/security/store/SecurityModeStore.java b/core/security/src/main/java/org/onosproject/security/store/SecurityModeStore.java
index 7e6b653..e69971c 100644
--- a/core/security/src/main/java/org/onosproject/security/store/SecurityModeStore.java
+++ b/core/security/src/main/java/org/onosproject/security/store/SecurityModeStore.java
@@ -101,4 +101,5 @@
* @param permissionSet array of PermissionInfo
*/
void acceptPolicy(ApplicationId appId, Set<Permission> permissionSet);
+
}
\ No newline at end of file