ONOS-1993 Implement API-level permission checking + security util code location replacement

Change-Id: I7bf20eda9c12ed2a44334504333b093057764cd2
diff --git a/core/net/src/main/java/org/onosproject/cluster/impl/ClusterManager.java b/core/net/src/main/java/org/onosproject/cluster/impl/ClusterManager.java
index 980d40f..273738b 100644
--- a/core/net/src/main/java/org/onosproject/cluster/impl/ClusterManager.java
+++ b/core/net/src/main/java/org/onosproject/cluster/impl/ClusterManager.java
@@ -33,6 +33,7 @@
 import org.onosproject.cluster.ClusterStoreDelegate;
 import org.onosproject.cluster.ControllerNode;
 import org.onosproject.cluster.NodeId;
+import org.onosproject.core.Permission;
 import org.onosproject.event.ListenerRegistry;
 import org.onosproject.event.EventDeliveryService;
 import org.slf4j.Logger;
@@ -42,6 +43,8 @@
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static org.slf4j.LoggerFactory.getLogger;
+import static org.onosproject.security.AppGuard.checkPermission;
+
 
 /**
  * Implementation of the cluster service.
@@ -88,22 +91,30 @@
 
     @Override
     public ControllerNode getLocalNode() {
+        checkPermission(Permission.CLUSTER_READ);
+
         return store.getLocalNode();
     }
 
     @Override
     public Set<ControllerNode> getNodes() {
+        checkPermission(Permission.CLUSTER_READ);
+
         return store.getNodes();
     }
 
     @Override
     public ControllerNode getNode(NodeId nodeId) {
+        checkPermission(Permission.CLUSTER_READ);
+
         checkNotNull(nodeId, INSTANCE_ID_NULL);
         return store.getNode(nodeId);
     }
 
     @Override
     public ControllerNode.State getState(NodeId nodeId) {
+        checkPermission(Permission.CLUSTER_READ);
+
         checkNotNull(nodeId, INSTANCE_ID_NULL);
         return store.getState(nodeId);
     }
@@ -111,6 +122,8 @@
 
     @Override
     public DateTime getLastUpdated(NodeId nodeId) {
+        checkPermission(Permission.CLUSTER_READ);
+
         return store.getLastUpdated(nodeId);
     }
 
@@ -144,11 +157,15 @@
 
     @Override
     public void addListener(ClusterEventListener listener) {
+        checkPermission(Permission.CLUSTER_EVENT);
+
         listenerRegistry.addListener(listener);
     }
 
     @Override
     public void removeListener(ClusterEventListener listener) {
+        checkPermission(Permission.CLUSTER_EVENT);
+
         listenerRegistry.removeListener(listener);
     }