You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/05/20 17:11:54 UTC

stratos git commit: Refining security permission model

Repository: stratos
Updated Branches:
  refs/heads/master 656b5226d -> 5c0e77c9c


Refining security permission model


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/5c0e77c9
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/5c0e77c9
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/5c0e77c9

Branch: refs/heads/master
Commit: 5c0e77c9c37508efc7bafe6ed733ddcc018502e2
Parents: 656b522
Author: Imesh Gunaratne <im...@apache.org>
Authored: Wed May 20 20:39:44 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Wed May 20 20:41:24 2015 +0530

----------------------------------------------------------------------
 .../src/main/resources/META-INF/component.xml   |  51 ++--
 .../src/main/resources/META-INF/component.xml   |  73 +++--
 .../console/controllers/menu/menu.json          | 128 +++++++-
 .../manager/utils/PermissionConstants.java      |  82 ++---
 .../stratos/manager/utils/UserRoleCreator.java  |   2 +-
 .../src/main/resources/META-INF/component.xml   | 111 ++-----
 .../rest/endpoint/api/AuthenticationApi.java    |   2 -
 .../rest/endpoint/api/StratosApiV41.java        | 306 +++++++++----------
 8 files changed, 390 insertions(+), 365 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/5c0e77c9/components/org.apache.stratos.autoscaler/src/main/resources/META-INF/component.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/resources/META-INF/component.xml b/components/org.apache.stratos.autoscaler/src/main/resources/META-INF/component.xml
index b9ad668..298674b 100644
--- a/components/org.apache.stratos.autoscaler/src/main/resources/META-INF/component.xml
+++ b/components/org.apache.stratos.autoscaler/src/main/resources/META-INF/component.xml
@@ -20,49 +20,52 @@
     <deployers>
     </deployers>
     <ManagementPermissions>
+        <!-- /Stratos -->
         <ManagementPermission>
-            <DisplayName>Get Autoscaling Policies</DisplayName>
-            <ResourceId>/permission/admin/manage/getAutoscalingPolicies</ResourceId>
+            <DisplayName>Stratos Permissions</DisplayName>
+            <ResourceId>/permission/stratos</ResourceId>
         </ManagementPermission>
+
+        <!-- /Stratos/Autoscaling Policies -->
         <ManagementPermission>
-            <DisplayName>Add Autoscaling Policies</DisplayName>
-            <ResourceId>/permission/admin/manage/addAutoscalingPolicy</ResourceId>
+            <DisplayName>Autoscaling Policies</DisplayName>
+            <ResourceId>/permission/stratos/autoscalingPolicies</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Update Autoscaling Policies</DisplayName>
-            <ResourceId>/permission/admin/manage/updateAutoscalingPolicy</ResourceId>
+            <DisplayName>Manage Autoscaling Policies</DisplayName>
+            <ResourceId>/permission/stratos/autoscalingPolicies/manage</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Remove Autoscaling Policy</DisplayName>
-            <ResourceId>/permission/admin/manage/removeAutoscalingPolicy</ResourceId>
+            <DisplayName>View Autoscaling Policies</DisplayName>
+            <ResourceId>/permission/stratos/autoscalingPolicies/view</ResourceId>
         </ManagementPermission>
+
+        <!-- /Stratos/Kubernetes Clusters -->
         <ManagementPermission>
-            <DisplayName>Add Kubernetes Host Cluster</DisplayName>
-            <ResourceId>/permission/admin/manage/addKubernetesHostCluster</ResourceId>
+            <DisplayName>Kubernetes Clusters</DisplayName>
+            <ResourceId>/permission/stratos/kubernetesClusters</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Add Kubernetes Host</DisplayName>
-            <ResourceId>/permission/admin/manage/addKubernetesHost</ResourceId>
+            <DisplayName>Manage Kubernetes Clusters</DisplayName>
+            <ResourceId>/permission/stratos/kubernetesClusters/manage</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Update Kubernetes Master</DisplayName>
-            <ResourceId>/permission/admin/manage/updateKubernetesMaster</ResourceId>
+            <DisplayName>View Kubernetes Clusters</DisplayName>
+            <ResourceId>/permission/stratos/kubernetesClusters/view</ResourceId>
         </ManagementPermission>
+
+        <!-- /Stratos/Application Policies-->
         <ManagementPermission>
-            <DisplayName>Update Kubernetes Host</DisplayName>
-            <ResourceId>/permission/admin/manage/updateKubernetesHost</ResourceId>
+            <DisplayName>Application Policies</DisplayName>
+            <ResourceId>/permission/stratos/applicationPolicies</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Get Kubernetes Host Clusters</DisplayName>
-            <ResourceId>/permission/admin/manage/getKubernetesHostClusters</ResourceId>
+            <DisplayName>Manage Application Policies</DisplayName>
+            <ResourceId>/permission/stratos/applicationPolicies/manage</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Remove Kubernetes Host Cluster</DisplayName>
-            <ResourceId>/permission/admin/manage/removeKubernetesHostCluster</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Get Application Policy</DisplayName>
-            <ResourceId>/permission/admin/manage/getApplicationPolicy</ResourceId>
+            <DisplayName>View Application Policies</DisplayName>
+            <ResourceId>/permission/stratos/applicationPolicies/view</ResourceId>
         </ManagementPermission>
     </ManagementPermissions>
 </component>

http://git-wip-us.apache.org/repos/asf/stratos/blob/5c0e77c9/components/org.apache.stratos.cloud.controller/src/main/resources/META-INF/component.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/resources/META-INF/component.xml b/components/org.apache.stratos.cloud.controller/src/main/resources/META-INF/component.xml
index 59d7e3f..beae63f 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/resources/META-INF/component.xml
+++ b/components/org.apache.stratos.cloud.controller/src/main/resources/META-INF/component.xml
@@ -25,69 +25,66 @@
         </deployer>
     </deployers>
     <ManagementPermissions>
+        <!-- /Stratos-->
         <ManagementPermission>
-            <DisplayName>Add Cartridge</DisplayName>
-            <ResourceId>/permission/admin/manage/addCartridge</ResourceId>
+            <DisplayName>Stratos Permissions</DisplayName>
+            <ResourceId>/permission/stratos</ResourceId>
         </ManagementPermission>
+
+        <!-- /Stratos/Cartridges-->
         <ManagementPermission>
-            <DisplayName>Update Cartridge</DisplayName>
-            <ResourceId>/permission/admin/manage/updateCartridge</ResourceId>
+            <DisplayName>Cartridges</DisplayName>
+            <ResourceId>/permission/stratos/cartridges</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Get Cartridges</DisplayName>
-            <ResourceId>/permission/admin/manage/getCartridges</ResourceId>
+            <DisplayName>Manage Cartridges</DisplayName>
+            <ResourceId>/permission/stratos/cartridges/manage</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Get Cartridges By Filter</DisplayName>
-            <ResourceId>/permission/admin/manage/getCartridgesByFilter</ResourceId>
+            <DisplayName>View Cartridges</DisplayName>
+            <ResourceId>/permission/stratos/cartridges/view</ResourceId>
         </ManagementPermission>
+
+        <!-- /Stratos/Cartridge Groups -->
         <ManagementPermission>
-            <DisplayName>Remove Cartridge</DisplayName>
-            <ResourceId>/permission/admin/manage/removeCartridge</ResourceId>
+            <DisplayName>Cartridge Groups</DisplayName>
+            <ResourceId>/permission/stratos/cartridgeGroups</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Add Cartridge Group</DisplayName>
-            <ResourceId>/permission/admin/manage/addCartridgeGroup</ResourceId>
+            <DisplayName>Manage Cartridge Groups</DisplayName>
+            <ResourceId>/permission/stratos/cartridgeGroups/manage</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Get Cartridge Groups</DisplayName>
-            <ResourceId>/permission/admin/manage/getCartridgeGroups</ResourceId>
+            <DisplayName>View Cartridge Groups</DisplayName>
+            <ResourceId>/permission/stratos/cartridgeGroups/view</ResourceId>
         </ManagementPermission>
+
+        <!-- /Stratos/Deployment Policies -->
         <ManagementPermission>
-            <DisplayName>Remove Service Group Definition</DisplayName>
-            <ResourceId>/permission/admin/manage/removeServiceGroup</ResourceId>
+            <DisplayName>Deployment Policies</DisplayName>
+            <ResourceId>/permission/stratos/deploymentPolicies</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Add Deployment Policy</DisplayName>
-            <ResourceId>/permission/admin/manage/addDeploymentPolicy</ResourceId>
+            <DisplayName>Manage Deployment Policies</DisplayName>
+            <ResourceId>/permission/stratos/deploymentPolicies/manage</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Get Deployment Policies</DisplayName>
-            <ResourceId>/permission/admin/manage/getDeploymentPolicies</ResourceId>
+            <DisplayName>View Deployment Policies</DisplayName>
+            <ResourceId>/permission/stratos/deploymentPolicies/view</ResourceId>
         </ManagementPermission>
+
+        <!-- /Stratos/Network Partitions -->
         <ManagementPermission>
-            <DisplayName>Update Deployment Policy</DisplayName>
-            <ResourceId>/permission/admin/manage/updateDeploymentPolicy</ResourceId>
+            <DisplayName>Network Partitions</DisplayName>
+            <ResourceId>/permission/stratos/networkPartitions</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Remove Deployment Policy</DisplayName>
-            <ResourceId>/permission/admin/manage/removeDeploymentPolicy</ResourceId>
+            <DisplayName>Manage Network Partitions</DisplayName>
+            <ResourceId>/permission/stratos/networkPartitions/manage</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Add Network Partition</DisplayName>
-            <ResourceId>/permission/admin/manage/addNetworkPartition</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Update Network Partition</DisplayName>
-            <ResourceId>/permission/admin/manage/updateNetworkPartition</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Get Network Partitions</DisplayName>
-            <ResourceId>/permission/admin/manage/getNetworkPartitions</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Remove Network Partition</DisplayName>
-            <ResourceId>/permission/admin/manage/removeNetworkPartition</ResourceId>
+            <DisplayName>View Network Partitions</DisplayName>
+            <ResourceId>/permission/stratos/networkPartitions/view</ResourceId>
         </ManagementPermission>
     </ManagementPermissions>
 </component>

http://git-wip-us.apache.org/repos/asf/stratos/blob/5c0e77c9/components/org.apache.stratos.manager.console/console/controllers/menu/menu.json
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager.console/console/controllers/menu/menu.json b/components/org.apache.stratos.manager.console/console/controllers/menu/menu.json
index 7535476..87ca12c 100644
--- a/components/org.apache.stratos.manager.console/console/controllers/menu/menu.json
+++ b/components/org.apache.stratos.manager.console/console/controllers/menu/menu.json
@@ -6,7 +6,30 @@
             "context": "/",
             "title": "Configurations",
             "icon": "fa-gears",
-            "permissionPaths": ["/permission", "/permission/admin"],
+            "permissionPaths": ["/permission",
+                "/permission/stratos",
+                "/permission/stratos/networkpartitions",
+                "/permission/stratos/networkpartitions/manage",
+                "/permission/stratos/networkpartitions/view",
+                "/permission/stratos/autoscalingpolicies",
+                "/permission/stratos/autoscalingpolicies/manage",
+                "/permission/stratos/autoscalingpolicies/view",
+                "/permission/stratos/deploymentpolicies",
+                "/permission/stratos/deploymentpolicies/manage",
+                "/permission/stratos/deploymentpolicies/view",
+                "/permission/stratos/applicationpolicies",
+                "/permission/stratos/applicationpolicies/manage",
+                "/permission/stratos/applicationpolicies/view",
+                "/permission/stratos/cartridges",
+                "/permission/stratos/cartridges/manage",
+                "/permission/stratos/cartridges/view",
+                "/permission/stratos/cartridgegroups",
+                "/permission/stratos/cartridgegroups/manage",
+                "/permission/stratos/cartridgegroups/view",
+                "/permission/stratos/kubernetesclusters",
+                "/permission/stratos/kubernetesclusters/manage",
+                "/permission/stratos/kubernetesclusters/view"
+            ],
             "description": "Configure network partitions, policies, cartridges, cartridge groups and kubernetes clusters",
             "sub-menu": [
                 {
@@ -15,7 +38,11 @@
                     "context": "/configure",
                     "title": "Network Partitions",
                     "icon": "fa-th-large",
-                    "permissionPaths": ["/permission", "/permission/admin/manage/getNetworkPartitions"],
+                    "permissionPaths": ["/permission",
+                        "/permission/stratos/networkpartitions",
+                        "/permission/stratos/networkpartitions/manage",
+                        "/permission/stratos/networkpartitions/view"
+                    ],
                     "description": "Manage network partitions."
                 },
                 {
@@ -24,7 +51,11 @@
                     "context": "/configure",
                     "title": "Autoscaling Policies",
                     "icon": "fa-expand",
-                    "permissionPaths": ["/permission", "/permission/admin", "/permission/admin/manage/getAutoscalingPolicies"],
+                    "permissionPaths": ["/permission",
+                        "/permission/stratos/autoscalingpolicies",
+                        "/permission/stratos/autoscalingpolicies/manage",
+                        "/permission/stratos/autoscalingpolicies/view"
+                    ],
                     "description": "Manage policies which specify autoscaling threshold values."
                 },
                 {
@@ -33,7 +64,11 @@
                     "context": "/configure",
                     "title": "Deployment Policies",
                     "icon": "fa-road",
-                    "permissionPaths": ["/permission", "/permission/admin/manage/getDeploymentPolicies"],
+                    "permissionPaths": ["/permission",
+                        "/permission/stratos/deploymentpolicies",
+                        "/permission/stratos/deploymentpolicies/manage",
+                        "/permission/stratos/deploymentpolicies/view"
+                    ],
                     "description": "Manage policies which specify cartridge deployment in partitions."
                 },
                 {
@@ -42,7 +77,11 @@
                     "context": "/configure",
                     "title": "Application Policies",
                     "icon": "fa-cube",
-                    "permissionPaths": ["/permission", "/permission/admin", "/permission/admin/manage/getApplicationPolicies"],
+                    "permissionPaths": ["/permission",
+                        "/permission/stratos/applicationpolicies",
+                        "/permission/stratos/applicationpolicies/manage",
+                        "/permission/stratos/applicationpolicies/view"
+                    ],
                     "description": "Manage policies which specify application deployment in network partitions."
                 },
                 {
@@ -51,7 +90,11 @@
                     "context": "/configure",
                     "title": "Cartridges",
                     "icon": "fa-inbox",
-                    "permissionPaths": ["/permission", "/permission/admin/manage/getCartridges"],
+                    "permissionPaths": ["/permission",
+                        "/permission/stratos/cartridges",
+                        "/permission/stratos/cartridges/manage",
+                        "/permission/stratos/cartridges/view"
+                    ],
                     "description": "Manage single-tenant & multi-tenant cartridges."
                 },
                 {
@@ -60,7 +103,11 @@
                     "context": "/configure",
                     "title": "Cartridge Groups",
                     "icon": "fa-briefcase",
-                    "permissionPaths": ["/permission", "/permission/admin", "/permission/admin/getServiceGroupDefinition"],
+                    "permissionPaths": ["/permission",
+                        "/permission/stratos/cartridgegroups",
+                        "/permission/stratos/cartridgegroups/manage",
+                        "/permission/stratos/cartridgegroups/view"
+                    ],
                     "description": "Manage cartridge groups"
                 },
                 {
@@ -69,7 +116,11 @@
                     "context": "/configure",
                     "title": "Kubernetes Clusters",
                     "icon": "fa-sitemap",
-                    "permissionPaths": ["/permission", "/permission/admin/manage/getKubernetesClusters"],
+                    "permissionPaths": ["/permission",
+                        "/permission/stratos/kubernetesclusters",
+                        "/permission/stratos/kubernetesclusters/manage",
+                        "/permission/stratos/kubernetesclusters/view"
+                    ],
                     "description": "Manage Kubernetes clusters."
                 }
             ]
@@ -80,7 +131,7 @@
             "context": "/",
             "title": "Users",
             "icon": "fa-users",
-            "permissionPaths": ["/permission", "/permission/admin" ],
+            "permissionPaths": ["/permission", "/permission/admin"],
             "description": "Manage tenants & users.",
             "sub-menu": [
                 {
@@ -89,7 +140,7 @@
                     "context": "/users",
                     "title": "Manage Users",
                     "icon": "fa-user",
-                    "permissionPaths": ["/permission", "/permission/protected/manage/getUsers"],
+                    "permissionPaths": ["/permission", "/permission/admin"],
                     "description": "Manage current tenant users."
                 },
                 {
@@ -98,7 +149,7 @@
                     "context": "/users",
                     "title": "Manage Tenants",
                     "icon": "fa-building",
-                    "permissionPaths": ["/permission/protected/manage/getTenants"],
+                    "permissionPaths": ["/permission"],
                     "description": "Manage tenants."
                 }
             ]
@@ -109,7 +160,10 @@
             "context": "/",
             "title": "Applications",
             "icon": "fa-cubes",
-            "permissionPaths": ["/permission", "/permission/admin/manage/getApplications"],
+            "permissionPaths": ["/permission",
+                "/permission/stratos/applications",
+                "/permission/stratos/applications/manage",
+                "/permission/stratos/applications/view"],
             "description": "Manage applications."
         },
         {
@@ -118,7 +172,30 @@
             "context": "/",
             "title": "JIRA",
             "icon": "fa-bug",
-            "permissionPaths": ["/permission", "/permission/admin"],
+            "permissionPaths": ["/permission",
+                "/permission/stratos",
+                "/permission/stratos/networkpartitions",
+                "/permission/stratos/networkpartitions/manage",
+                "/permission/stratos/networkpartitions/view",
+                "/permission/stratos/autoscalingpolicies",
+                "/permission/stratos/autoscalingpolicies/manage",
+                "/permission/stratos/autoscalingpolicies/view",
+                "/permission/stratos/deploymentpolicies",
+                "/permission/stratos/deploymentpolicies/manage",
+                "/permission/stratos/deploymentpolicies/view",
+                "/permission/stratos/applicationpolicies",
+                "/permission/stratos/applicationpolicies/manage",
+                "/permission/stratos/applicationpolicies/view",
+                "/permission/stratos/cartridges",
+                "/permission/stratos/cartridges/manage",
+                "/permission/stratos/cartridges/view",
+                "/permission/stratos/cartridgegroups",
+                "/permission/stratos/cartridgegroups/manage",
+                "/permission/stratos/cartridgegroups/view",
+                "/permission/stratos/kubernetesclusters",
+                "/permission/stratos/kubernetesclusters/manage",
+                "/permission/stratos/kubernetesclusters/view"
+            ],
             "description": "Report your issues that you find."
         },
         {
@@ -126,6 +203,31 @@
             "linkexternal": true,
             "context": "/",
             "title": "Documentation",
+            "icon": "fa-life-saver",
+            "permissionPaths": ["/permission",
+                "/permission/stratos",
+                "/permission/stratos/networkpartitions",
+                "/permission/stratos/networkpartitions/manage",
+                "/permission/stratos/networkpartitions/view",
+                "/permission/stratos/autoscalingpolicies",
+                "/permission/stratos/autoscalingpolicies/manage",
+                "/permission/stratos/autoscalingpolicies/view",
+                "/permission/stratos/deploymentpolicies",
+                "/permission/stratos/deploymentpolicies/manage",
+                "/permission/stratos/deploymentpolicies/view",
+                "/permission/stratos/applicationpolicies",
+                "/permission/stratos/applicationpolicies/manage",
+                "/permission/stratos/applicationpolicies/view",
+                "/permission/stratos/cartridges",
+                "/permission/stratos/cartridges/manage",
+                "/permission/stratos/cartridges/view",
+                "/permission/stratos/cartridgegroups",
+                "/permission/stratos/cartridgegroups/manage",
+                "/permission/stratos/cartridgegroups/view",
+                "/permission/stratos/kubernetesclusters",
+                "/permission/stratos/kubernetesclusters/manage",
+                "/permission/stratos/kubernetesclusters/view"
+            ],
             "icon": "fa-book",
             "permissionPaths": ["/permission", "/permission/admin"],
             "description": "Read documentation to get more information."

http://git-wip-us.apache.org/repos/asf/stratos/blob/5c0e77c9/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/PermissionConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/PermissionConstants.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/PermissionConstants.java
index 29a5e85..8bd453c 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/PermissionConstants.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/PermissionConstants.java
@@ -21,55 +21,37 @@ package org.apache.stratos.manager.utils;
 
 public class PermissionConstants {
 
-    public static final String[] INTERNAL_USER_ROLE_PERMISSIONS = new String[] {
-            "/permission/protected/restlogin",
-            "/permission/admin/manage/addCartridge",
-            "/permission/admin/manage/updateCartridge",
-            "/permission/admin/manage/getCartridges",
-            "/permission/admin/manage/getCartridgesByFilter",
-            "/permission/admin/manage/removeCartridge",
-            "/permission/admin/manage/addCartridgeGroup",
-            "/permission/admin/manage/getCartridgeGroups",
-            "/permission/admin/manage/removeServiceGroup",
-            "/permission/admin/manage/addDeploymentPolicy",
-            "/permission/admin/manage/getDeploymentPolicies",
-            "/permission/admin/manage/updateDeploymentPolicy",
-            "/permission/admin/manage/removeDeploymentPolicy",
-            "/permission/admin/manage/addNetworkPartition",
-            "/permission/admin/manage/updateNetworkPartition",
-            "/permission/admin/manage/getNetworkPartitions",
-            "/permission/admin/manage/removeNetworkPartition",
-            "/permission/admin/manage/getAutoscalingPolicies",
-            "/permission/admin/manage/addAutoscalingPolicy",
-            "/permission/admin/manage/updateAutoscalingPolicy",
-            "/permission/admin/manage/removeAutoscalingPolicy",
-            "/permission/admin/manage/addKubernetesHostCluster",
-            "/permission/admin/manage/addKubernetesHost",
-            "/permission/admin/manage/updateKubernetesMaster",
-            "/permission/admin/manage/updateKubernetesHost",
-            "/permission/admin/manage/getKubernetesHostClusters",
-            "/permission/admin/manage/removeKubernetesHostCluster",
-            "/permission/admin/manage/getApplicationPolicy",
-            "/permission/admin/manage/addApplication",
-            "/permission/admin/manage/getApplications",
-            "/permission/admin/manage/deployApplication",
-            "/permission/admin/manage/getApplicationDeploymentPolicy",
-            "/permission/admin/manage/addApplicationSignUp",
-            "/permission/admin/manage/getApplicationSignUp",
-            "/permission/admin/manage/removeApplicationSignUp",
-            "/permission/admin/manage/addDomainMappings",
-            "/permission/admin/manage/removeDomainMappings",
-            "/permission/admin/manage/getDomainMappings",
-            "/permission/admin/manage/undeployApplication",
-            "/permission/admin/manage/getApplicationRuntime",
-            "/permission/admin/manage/removeApplication",
-            "/permission/admin/manage/addTenant",
-            "/permission/admin/manage/updateTenant",
-            "/permission/admin/manage/getTenantForDomain",
-            "/permission/admin/manage/removeTenant",
-            "/permission/admin/manage/getTenants",
-            "/permission/admin/manage/activateTenant",
-            "/permission/admin/manage/deactivateTenant",
-            "/permission/admin/manage/notifyRepository"
+    public static final String[] STRATOS_PERMISSIONS = new String[] {
+            "/permission/stratos",
+            "/permission/stratos/autoscalingPolicies",
+            "/permission/stratos/autoscalingPolicies/manage",
+            "/permission/stratos/autoscalingPolicies/view",
+            "/permission/stratos/kubernetesClusters",
+            "/permission/stratos/kubernetesClusters/manage",
+            "/permission/stratos/kubernetesClusters/view",
+            "/permission/stratos/applicationPolicies",
+            "/permission/stratos/applicationPolicies/manage",
+            "/permission/stratos/applicationPolicies/view",
+            "/permission/stratos/cartridges",
+            "/permission/stratos/cartridges/manage",
+            "/permission/stratos/cartridges/view",
+            "/permission/stratos/cartridgeGroups",
+            "/permission/stratos/cartridgeGroups/manage",
+            "/permission/stratos/cartridgeGroups/view",
+            "/permission/stratos/deploymentPolicies",
+            "/permission/stratos/deploymentPolicies/manage",
+            "/permission/stratos/deploymentPolicies/view",
+            "/permission/stratos/networkPartitions",
+            "/permission/stratos/networkPartitions/manage",
+            "/permission/stratos/networkPartitions/view",
+            "/permission/stratos/applications",
+            "/permission/stratos/applications/manage",
+            "/permission/stratos/applications/view",
+            "/permission/stratos/applicationSignUps",
+            "/permission/stratos/applicationSignUps/manage",
+            "/permission/stratos/applicationSignUps/view",
+            "/permission/stratos/domainMappings",
+            "/permission/stratos/domainMappings/manage",
+            "/permission/stratos/domainMappings/view",
     };
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/5c0e77c9/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/UserRoleCreator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/UserRoleCreator.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/UserRoleCreator.java
index 2369a86..2bdc82f 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/UserRoleCreator.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/UserRoleCreator.java
@@ -46,7 +46,7 @@ public class UserRoleCreator {
 
                 //Set permissions to the Internal/user role
                 List<Permission> permissions = new ArrayList<Permission>();
-                for(String permissionResourceId : PermissionConstants.INTERNAL_USER_ROLE_PERMISSIONS) {
+                for(String permissionResourceId : PermissionConstants.STRATOS_PERMISSIONS) {
                     Permission permission = new Permission(permissionResourceId, UserMgtConstants.EXECUTE_ACTION);
                     permissions.add(permission);
                 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/5c0e77c9/components/org.apache.stratos.manager/src/main/resources/META-INF/component.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/resources/META-INF/component.xml b/components/org.apache.stratos.manager/src/main/resources/META-INF/component.xml
index e885598..4b88f35 100644
--- a/components/org.apache.stratos.manager/src/main/resources/META-INF/component.xml
+++ b/components/org.apache.stratos.manager/src/main/resources/META-INF/component.xml
@@ -18,109 +18,52 @@
   -->
 <component xmlns="http://products.wso2.org/carbon">
     <ManagementPermissions>
+        <!-- /Stratos -->
         <ManagementPermission>
-            <DisplayName>REST Login</DisplayName>
-            <ResourceId>/permission/protected/restlogin</ResourceId>
+            <DisplayName>Stratos Permissions</DisplayName>
+            <ResourceId>/permission/stratos</ResourceId>
         </ManagementPermission>
+
+        <!-- /Stratos/Applications -->
         <ManagementPermission>
-            <DisplayName>Add Application</DisplayName>
-            <ResourceId>/permission/admin/manage/addApplication</ResourceId>
+            <DisplayName>Applications</DisplayName>
+            <ResourceId>/permission/stratos/applications</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Get Application</DisplayName>
-            <ResourceId>/permission/admin/manage/getApplications</ResourceId>
+            <DisplayName>Manage Applications</DisplayName>
+            <ResourceId>/permission/stratos/applications/manage</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Deploy Application</DisplayName>
-            <ResourceId>/permission/admin/manage/deployApplication</ResourceId>
+            <DisplayName>View Applications</DisplayName>
+            <ResourceId>/permission/stratos/applications/view</ResourceId>
         </ManagementPermission>
+
+        <!-- /Stratos/Application SignUps-->
         <ManagementPermission>
-            <DisplayName>Get Application Deployment Policy</DisplayName>
-            <ResourceId>/permission/admin/manage/getApplicationDeploymentPolicy</ResourceId>
+            <DisplayName>Application Sign Ups</DisplayName>
+            <ResourceId>/permission/stratos/applicationSignUps</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Add Application Sign Up</DisplayName>
-            <ResourceId>/permission/admin/manage/addApplicationSignUp</ResourceId>
+            <DisplayName>Manage Application Sign Ups</DisplayName>
+            <ResourceId>/permission/stratos/applicationSignUps/manage</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Get Application Sign Up</DisplayName>
-            <ResourceId>/permission/admin/manage/getApplicationSignUp</ResourceId>
+            <DisplayName>View Application Sign Ups</DisplayName>
+            <ResourceId>/permission/stratos/applicationSignUps/view</ResourceId>
         </ManagementPermission>
+
+        <!-- /Stratos/Domain Mappings -->
         <ManagementPermission>
-            <DisplayName>Remove Application Sign Up</DisplayName>
-            <ResourceId>/permission/admin/manage/removeApplicationSignUp</ResourceId>
+            <DisplayName>Domain Mappings</DisplayName>
+            <ResourceId>/permission/stratos/domainMappings</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Add Domain Mappings</DisplayName>
-            <ResourceId>/permission/admin/manage/addDomainMappings</ResourceId>
+            <DisplayName>Manage Domain Mappings</DisplayName>
+            <ResourceId>/permission/stratos/domainMappings/manage</ResourceId>
         </ManagementPermission>
         <ManagementPermission>
-            <DisplayName>Remove Domain Mappings</DisplayName>
-            <ResourceId>/permission/admin/manage/removeDomainMappings</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Get Domain Mappings</DisplayName>
-            <ResourceId>/permission/admin/manage/getDomainMappings</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Undeploy Application</DisplayName>
-            <ResourceId>/permission/admin/manage/undeployApplication</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Get Application Runtime</DisplayName>
-            <ResourceId>/permission/admin/manage/getApplicationRuntime</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Remove Application</DisplayName>
-            <ResourceId>/permission/admin/manage/removeApplication</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Add Tenant</DisplayName>
-            <ResourceId>/permission/admin/manage/addTenant</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Update Tenant</DisplayName>
-            <ResourceId>/permission/admin/manage/updateTenant</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Get Tenant For Domain</DisplayName>
-            <ResourceId>/permission/admin/manage/getTenantForDomain</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Remove Tenant</DisplayName>
-            <ResourceId>/permission/admin/manage/removeTenant</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Get Tenants</DisplayName>
-            <ResourceId>/permission/admin/manage/getTenants</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Activate Tenant</DisplayName>
-            <ResourceId>/permission/admin/manage/activateTenant</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Deactivate Tenant</DisplayName>
-            <ResourceId>/permission/admin/manage/deactivateTenant</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Notify Repository</DisplayName>
-            <ResourceId>/permission/admin/manage/notifyRepository</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Add User</DisplayName>
-            <ResourceId>/permission/protected/manage/addUser</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Remove User</DisplayName>
-            <ResourceId>/permission/protected/manage/removeUser</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Update User</DisplayName>
-            <ResourceId>/permission/protected/manage/updateUser</ResourceId>
-        </ManagementPermission>
-        <ManagementPermission>
-            <DisplayName>Get Users</DisplayName>
-            <ResourceId>/permission/protected/manage/getUsers</ResourceId>
+            <DisplayName>View Domain Mappings</DisplayName>
+            <ResourceId>/permission/stratos/domainMappings/view</ResourceId>
         </ManagementPermission>
     </ManagementPermissions>
 </component>

http://git-wip-us.apache.org/repos/asf/stratos/blob/5c0e77c9/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/AuthenticationApi.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/AuthenticationApi.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/AuthenticationApi.java
index 93b668d..8925513 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/AuthenticationApi.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/AuthenticationApi.java
@@ -64,6 +64,4 @@ public class AuthenticationApi extends AbstractApi {
         return Response.ok().header("WWW-Authenticate", "Basic").type(MediaType.APPLICATION_JSON).
                 entity(Utils.buildAuthenticationSuccessMessage(sessionId)).build();
     }
-
-
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/5c0e77c9/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
index 7b50e40..647d8d2 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
@@ -82,7 +82,7 @@ public class StratosApiV41 extends AbstractApi {
      */
     @GET
     @Path("/init")
-    @AuthorizationAction("/permission/admin/restlogin")
+    @AuthorizationAction("/permission/admin/login")
     public Response initialize()
             throws RestAPIException {
         ResponseMessageBean response = new ResponseMessageBean(ResponseMessageBean.SUCCESS,
@@ -101,7 +101,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/session")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/admin/restlogin")
+    @AuthorizationAction("/permission/admin/login")
     public Response getSession() {
         HttpSession httpSession = httpServletRequest.getSession(true);//create session if not found
         PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();
@@ -115,36 +115,6 @@ public class StratosApiV41 extends AbstractApi {
     }
 
     /**
-     * Creates the cartridge definition.
-     *
-     * @param cartridgeDefinitionBean the cartridge definition bean
-     * @return 201 if cartridge is successfully created, 409 if cartridge already exists.
-     * @throws RestAPIException the rest api exception
-     */
-    @POST
-    @Path("/cartridges")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/addCartridge")
-    public Response addCartridge(
-            CartridgeBean cartridgeDefinitionBean) throws RestAPIException {
-
-        String cartridgeType = cartridgeDefinitionBean.getType();
-        CartridgeBean cartridgeBean = StratosApiV41Utils.getCartridgeForValidate(cartridgeType);
-        if (cartridgeBean != null) {
-            String msg = String.format("Cartridge already exists: [cartridge-type] %s", cartridgeType);
-            log.warn(msg);
-            return Response.status(Response.Status.CONFLICT)
-                    .entity(new ResponseMessageBean(ResponseMessageBean.ERROR, msg)).build();
-        }
-
-        StratosApiV41Utils.addCartridge(cartridgeDefinitionBean);
-        URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeType).build();
-        return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
-                String.format("Cartridge added successfully: [cartridge-type] %s", cartridgeType))).build();
-    }
-
-    /**
      * Creates the Deployment Policy Definition.
      *
      * @param deploymentPolicyDefinitionBean the deployment policy bean
@@ -155,7 +125,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/deploymentPolicies")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/addDeploymentPolicy")
+    @AuthorizationAction("/permission/stratos/deploymentPolicies/manage")
     public Response addDeploymentPolicy(
             DeploymentPolicyBean deploymentPolicyDefinitionBean) throws RestAPIException {
 
@@ -186,7 +156,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/deploymentPolicies/{deploymentPolicyId}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getDeploymentPolicy")
+    @AuthorizationAction("/permission/stratos/deploymentPolicies/view")
     public Response getDeploymentPolicy(
             @PathParam("deploymentPolicyId") String deploymentPolicyId) throws RestAPIException {
         DeploymentPolicyBean deploymentPolicyBean = StratosApiV41Utils.getDeployementPolicy(deploymentPolicyId);
@@ -207,7 +177,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/deploymentPolicies")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getDeploymentPolicy")
+    @AuthorizationAction("/permission/stratos/deploymentPolicies/view")
     public Response getDeploymentPolicies()
             throws RestAPIException {
         DeploymentPolicyBean[] deploymentPolicies = StratosApiV41Utils.getDeployementPolicies();
@@ -230,7 +200,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/deploymentPolicies")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/updateDeploymentPolicy")
+    @AuthorizationAction("/permission/stratos/deploymentPolicies/manage")
     public Response updateDeploymentPolicy(
             DeploymentPolicyBean deploymentPolicyDefinitionBean) throws RestAPIException {
 
@@ -270,7 +240,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/deploymentPolicies/{deploymentPolicyId}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/removeDeploymentPolicy")
+    @AuthorizationAction("/permission/stratos/deploymentPolicies/manage")
     public Response removeDeploymentPolicy(
             @PathParam("deploymentPolicyId") String deploymentPolicyId) throws RestAPIException {
         try {
@@ -289,6 +259,36 @@ public class StratosApiV41 extends AbstractApi {
     }
 
     /**
+     * Creates the cartridge definition.
+     *
+     * @param cartridgeDefinitionBean the cartridge definition bean
+     * @return 201 if cartridge is successfully created, 409 if cartridge already exists.
+     * @throws RestAPIException the rest api exception
+     */
+    @POST
+    @Path("/cartridges")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/stratos/cartridges/manage")
+    public Response addCartridge(
+            CartridgeBean cartridgeDefinitionBean) throws RestAPIException {
+
+        String cartridgeType = cartridgeDefinitionBean.getType();
+        CartridgeBean cartridgeBean = StratosApiV41Utils.getCartridgeForValidate(cartridgeType);
+        if (cartridgeBean != null) {
+            String msg = String.format("Cartridge already exists: [cartridge-type] %s", cartridgeType);
+            log.warn(msg);
+            return Response.status(Response.Status.CONFLICT)
+                    .entity(new ResponseMessageBean(ResponseMessageBean.ERROR, msg)).build();
+        }
+
+        StratosApiV41Utils.addCartridge(cartridgeDefinitionBean);
+        URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeType).build();
+        return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
+                String.format("Cartridge added successfully: [cartridge-type] %s", cartridgeType))).build();
+    }
+
+    /**
      * Updates the cartridge definition.
      *
      * @param cartridgeDefinitionBean the cartridge definition bean
@@ -299,7 +299,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/cartridges")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/updateCartridge")
+    @AuthorizationAction("/permission/stratos/cartridges/manage")
     public Response updateCartridge(
             CartridgeBean cartridgeDefinitionBean) throws RestAPIException {
         StratosApiV41Utils.updateCartridge(cartridgeDefinitionBean);
@@ -320,7 +320,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/cartridges")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getCartridge")
+    @AuthorizationAction("/permission/stratos/cartridges/view")
     public Response getCartridges()
             throws RestAPIException {
 
@@ -345,7 +345,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/cartridges/{cartridgeType}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getCartridge")
+    @AuthorizationAction("/permission/stratos/cartridges/view")
     public Response getCartridge(
             @PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
         CartridgeBean cartridge;
@@ -370,7 +370,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/cartridges/filter/{filter}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getCartridgesByFilter")
+    @AuthorizationAction("/permission/stratos/cartridges/view")
     public Response getCartridgesByFilter(
             @DefaultValue("") @PathParam("filter") String filter, @QueryParam("criteria") String criteria)
             throws RestAPIException {
@@ -397,7 +397,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/cartridges/{cartridgeType}/filter/{filter}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getCartridgesByFilter")
+    @AuthorizationAction("/permission/stratos/cartridges/view")
     public Response getCartridgeByFilter(
             @PathParam("cartridgeType") String cartridgeType, @DefaultValue("") @PathParam("filter") String filter)
             throws RestAPIException {
@@ -423,7 +423,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/cartridges/{cartridgeType}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/removeCartridge")
+    @AuthorizationAction("/permission/stratos/cartridges/manage")
     public Response removeCartridge(
             @PathParam("cartridgeType") String cartridgeType) throws RestAPIException {
         StratosApiV41Utils.removeCartridge(cartridgeType);
@@ -437,7 +437,7 @@ public class StratosApiV41 extends AbstractApi {
     /**
      * Creates the cartridge group definition.
      *
-     * @param serviceGroupDefinition the cartridge group definition
+     * @param cartridgeGroupBean the cartridge group definition
      * @return 201 if group added successfully
      * @throws RestAPIException the rest api exception
      */
@@ -445,17 +445,17 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/cartridgeGroups")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/addServiceGroup")
+    @AuthorizationAction("/permission/stratos/cartridgeGroups/manage")
     @SuperTenantService(true)
-    public Response addServiceGroup(
-            CartridgeGroupBean serviceGroupDefinition) throws RestAPIException {
+    public Response addCartridgeGroup(
+            CartridgeGroupBean cartridgeGroupBean) throws RestAPIException {
         try {
-            StratosApiV41Utils.addServiceGroup(serviceGroupDefinition);
-            URI url = uriInfo.getAbsolutePathBuilder().path(serviceGroupDefinition.getName()).build();
+            StratosApiV41Utils.addServiceGroup(cartridgeGroupBean);
+            URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeGroupBean.getName()).build();
 
             return Response.created(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                     String.format("Cartridge Group added successfully: [cartridge-group] %s",
-                            serviceGroupDefinition.getName()))).build();
+                            cartridgeGroupBean.getName()))).build();
         } catch (InvalidCartridgeGroupDefinitionException e) {
             return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
                     ResponseMessageBean.ERROR, e.getMessage())).build();
@@ -476,7 +476,7 @@ public class StratosApiV41 extends AbstractApi {
     /**
      * Updates a cartridge group
      *
-     * @param cartridgeGroup cartridge group definition
+     * @param cartridgeGroupBean cartridge group definition
      * @return 200 if network partition is successfully updated
      * @throws RestAPIException
      */
@@ -484,17 +484,17 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/cartridgeGroups")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/updateServiceGroup")
-    public Response updateServiceGroup(
-            CartridgeGroupBean cartridgeGroup) throws RestAPIException {
+    @AuthorizationAction("/permission/stratos/cartridgeGroups/manage")
+    public Response updateCartridgeGroup(
+            CartridgeGroupBean cartridgeGroupBean) throws RestAPIException {
 
         try {
-            StratosApiV41Utils.updateServiceGroup(cartridgeGroup);
-            URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeGroup.getName()).build();
+            StratosApiV41Utils.updateServiceGroup(cartridgeGroupBean);
+            URI url = uriInfo.getAbsolutePathBuilder().path(cartridgeGroupBean.getName()).build();
 
             return Response.ok(url).entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
                     String.format("Cartridge group updated successfully: [cartridge-group] %s",
-                            cartridgeGroup.getName()))).build();
+                            cartridgeGroupBean.getName()))).build();
 
         } catch (InvalidCartridgeGroupDefinitionException e) {
             return Response.status(Response.Status.BAD_REQUEST).entity(new ResponseMessageBean(
@@ -509,18 +509,18 @@ public class StratosApiV41 extends AbstractApi {
     /**
      * Gets the cartridge group definition.
      *
-     * @param groupDefinitionName the group definition name
+     * @param name the group definition name
      * @return 200 if cartridge group found for group definition, 404 if none is found
      * @throws RestAPIException the rest api exception
      */
     @GET
-    @Path("/cartridgeGroups/{groupDefinitionName}")
+    @Path("/cartridgeGroups/{name}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getServiceGroupDefinition")
-    public Response getServiceGroupDefinition(
-            @PathParam("groupDefinitionName") String groupDefinitionName) throws RestAPIException {
-        CartridgeGroupBean serviceGroupDefinition = StratosApiV41Utils.getServiceGroupDefinition(groupDefinitionName);
+    @AuthorizationAction("/permission/stratos/cartridgeGroups/view")
+    public Response getCartridgeGroup(
+            @PathParam("name") String name) throws RestAPIException {
+        CartridgeGroupBean serviceGroupDefinition = StratosApiV41Utils.getServiceGroupDefinition(name);
 
         if (serviceGroupDefinition != null) {
             return Response.ok().entity(serviceGroupDefinition).build();
@@ -540,8 +540,8 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/cartridgeGroups")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getServiceGroupDefinition")
-    public Response getServiceGroups()
+    @AuthorizationAction("/permission/stratos/cartridgeGroups/view")
+    public Response getCartridgeGroups()
             throws RestAPIException {
         CartridgeGroupBean[] serviceGroups = StratosApiV41Utils.getServiceGroupDefinitions();
 
@@ -556,26 +556,26 @@ public class StratosApiV41 extends AbstractApi {
     /**
      * Delete cartridge group definition.
      *
-     * @param groupDefinitionName the group definition name
+     * @param name the group definition name
      * @return 200 if cartridge group is successfully removed
      * @throws RestAPIException the rest api exception
      */
     @DELETE
-    @Path("/cartridgeGroups/{groupDefinitionName}")
+    @Path("/cartridgeGroups/{name}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/removeServiceGroup")
+    @AuthorizationAction("/permission/stratos/cartridgeGroups/manage")
     @SuperTenantService(true)
     public Response removeServiceGroup(
-            @PathParam("groupDefinitionName") String groupDefinitionName) throws RestAPIException {
+            @PathParam("name") String name) throws RestAPIException {
         try {
-            StratosApiV41Utils.removeServiceGroup(groupDefinitionName);
+            StratosApiV41Utils.removeServiceGroup(name);
         } catch (AutoscalerServiceCartridgeGroupNotFoundExceptionException e) {
             return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
                     ResponseMessageBean.ERROR, "Cartridge group not found")).build();
         }
         return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
-                String.format("Cartridge Group deleted successfully: [cartridge-group] %s", groupDefinitionName)))
+                String.format("Cartridge Group deleted successfully: [cartridge-group] %s", name)))
                 .build();
     }
 
@@ -592,7 +592,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/networkPartitions")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/addNetworkPartition")
+    @AuthorizationAction("/permission/stratos/networkPartitions/manage")
     public Response addNetworkPartition(
             NetworkPartitionBean networkPartitionBean) throws RestAPIException {
         String networkPartitionId = networkPartitionBean.getId();
@@ -626,7 +626,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/networkPartitions")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getNetworkPartitions")
+    @AuthorizationAction("/permission/stratos/networkPartitions/view")
     public Response getNetworkPartitions()
             throws RestAPIException {
         NetworkPartitionBean[] networkPartitions = StratosApiV41Utils.getNetworkPartitions();
@@ -647,7 +647,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/networkPartitions/{networkPartitionId}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getNetworkPartitions")
+    @AuthorizationAction("/permission/stratos/networkPartitions/view")
     public Response getNetworkPartition(
             @PathParam("networkPartitionId") String networkPartitionId) throws RestAPIException {
         NetworkPartitionBean networkPartition = StratosApiV41Utils.getNetworkPartition(networkPartitionId);
@@ -660,6 +660,32 @@ public class StratosApiV41 extends AbstractApi {
     }
 
     /**
+     * Updates a network partition
+     *
+     * @param networkPartition Network Partition
+     * @return 200 if network partition is successfully updated
+     * @throws RestAPIException
+     */
+    @PUT
+    @Path("/networkPartitions")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/stratos/networkPartitions/manage")
+    public Response updateNetworkPartition(
+            NetworkPartitionBean networkPartition) throws RestAPIException {
+
+        try {
+            StratosApiV41Utils.updateNetworkPartition(networkPartition);
+        } catch (CloudControllerServiceNetworkPartitionNotExistsExceptionException e) {
+            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
+                    ResponseMessageBean.ERROR, "Network partition not found")).build();
+        }
+        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
+                String.format("Network Partition updated successfully: [network-partition] %s",
+                        networkPartition.getId()))).build();
+    }
+
+    /**
      * Remove network partition by network partition id
      *
      * @return 200 if specified network partition is successfully deleted, 404 if specified network partition is not
@@ -668,7 +694,7 @@ public class StratosApiV41 extends AbstractApi {
      */
     @DELETE
     @Path("/networkPartitions/{networkPartitionId}")
-    @AuthorizationAction("/permission/protected/manage/removeNetworkPartition")
+    @AuthorizationAction("/permission/stratos/networkPartitions/manage")
     public Response removeNetworkPartition(
             @PathParam("networkPartitionId") String networkPartitionId) throws RestAPIException {
 
@@ -696,7 +722,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applications")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/addApplication")
+    @AuthorizationAction("/permission/stratos/applications/manage")
     public Response addApplication(ApplicationBean applicationDefinition) throws RestAPIException {
         try {
             StratosApiV41Utils.addApplication(applicationDefinition, getConfigContext(),
@@ -736,7 +762,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applications")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/addApplication")
+    @AuthorizationAction("/permission/stratos/applications/manage")
     public Response updateApplication(ApplicationBean applicationDefinition) throws RestAPIException {
 
         try {
@@ -770,7 +796,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applications")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getApplications")
+    @AuthorizationAction("/permission/stratos/applications/view")
     public Response getApplications() throws RestAPIException {
         List<ApplicationBean> applicationDefinitions = StratosApiV41Utils.getApplications();
         if (applicationDefinitions == null || applicationDefinitions.isEmpty()) {
@@ -794,7 +820,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applications/{applicationId}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getApplications")
+    @AuthorizationAction("/permission/stratos/applications/view")
     public Response getApplication(
             @PathParam("applicationId") String applicationId) throws RestAPIException {
         ApplicationBean applicationDefinition = StratosApiV41Utils.getApplication(applicationId);
@@ -817,7 +843,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applications/{applicationId}/deploy/{applicationPolicyId}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/deployApplication")
+    @AuthorizationAction("/permission/stratos/applications/manage")
     public Response deployApplication(
             @PathParam("applicationId") String applicationId,
             @PathParam("applicationPolicyId") String applicationPolicyId) throws RestAPIException {
@@ -849,7 +875,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applicationPolicies")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/addApplicationPolicy")
+    @AuthorizationAction("/permission/stratos/applicationPolicies/manage")
     public Response addApplicationPolicy(
             ApplicationPolicyBean applicationPolicy) throws RestAPIException {
         try {
@@ -884,7 +910,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applicationPolicies/{applicationPolicyId}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getApplicationPolicy")
+    @AuthorizationAction("/permission/stratos/applicationPolicies/view")
     public Response getApplicationPolicy(
             @PathParam("applicationPolicyId") String applicationPolicyId) throws RestAPIException {
         try {
@@ -910,7 +936,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applicationPolicies")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getApplicationPolicies")
+    @AuthorizationAction("/permission/stratos/applicationPolicies/view")
     public Response getApplicationPolicies()
             throws RestAPIException {
         ApplicationPolicyBean[] applicationPolicies = StratosApiV41Utils.getApplicationPolicies();
@@ -932,7 +958,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applicationPolicies/{applicationPolicyId}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/removeApplicationPolicy")
+    @AuthorizationAction("/permission/stratos/applicationPolicies/manage")
     public Response removeApplicationPolicy(
             @PathParam("applicationPolicyId") String applicationPolicyId) throws RestAPIException {
         try {
@@ -968,7 +994,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applicationPolicies")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/updateApplicationPolicy")
+    @AuthorizationAction("/permission/stratos/applicationPolicies/manage")
     public Response updateApplicationPolicy(
             ApplicationPolicyBean applicationPolicy) throws RestAPIException {
 
@@ -999,7 +1025,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applications/{applicationId}/networkPartitions")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getApplicationNetworkPartitions")
+    @AuthorizationAction("/permission/stratos/applications/view")
     public Response getApplicationNetworkPartitions(
             @PathParam("applicationId") String applicationId) throws RestAPIException {
         ApplicationNetworkPartitionIdListBean appNetworkPartitionsBean = StratosApiV41Utils
@@ -1026,7 +1052,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applications/{applicationId}/signup")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/addApplicationSignUp")
+    @AuthorizationAction("/permission/stratos/applicationSignUps/manage")
     public Response addApplicationSignUp(
             @PathParam("applicationId") String applicationId, ApplicationSignUpBean applicationSignUpBean)
             throws RestAPIException {
@@ -1047,7 +1073,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applications/{applicationId}/signup")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getApplicationSignUp")
+    @AuthorizationAction("/permission/stratos/applicationSignUps/view")
     public Response getApplicationSignUp(
             @PathParam("applicationId") String applicationId) throws RestAPIException,
             StratosManagerServiceApplicationSignUpExceptionException {
@@ -1077,7 +1103,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applications/{applicationId}/signup")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/removeApplicationSignUp")
+    @AuthorizationAction("/permission/stratos/applicationSignUps/manage")
     public Response removeApplicationSignUp(
             @PathParam("applicationId") String applicationId) throws RestAPIException {
         StratosApiV41Utils.removeApplicationSignUp(applicationId);
@@ -1097,7 +1123,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applications/{applicationId}/domainMappings")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/addDomainMappings")
+    @AuthorizationAction("/permission/stratos/domainMappings/manage")
     public Response addDomainMappings(
             @PathParam("applicationId") String applicationId, ApplicationDomainMappingsBean domainMappingsBean)
             throws RestAPIException {
@@ -1131,7 +1157,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applications/{applicationId}/domainMappings/{domainName}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/removeDomainMappings")
+    @AuthorizationAction("/permission/stratos/domainMappings/manage")
     public Response removeDomainMappings(
             @PathParam("applicationId") String applicationId, @PathParam("domainName") String domainName)
             throws RestAPIException {
@@ -1157,7 +1183,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applications/{applicationId}/domainMappings")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getDomainMappings")
+    @AuthorizationAction("/permission/stratos/domainMappings/view")
     public Response getDomainMappings(
             @PathParam("applicationId") String applicationId) throws RestAPIException {
         List<DomainMappingBean> domainMappingsBeanList = null;
@@ -1192,7 +1218,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applications/{applicationId}/undeploy")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/undeployApplication")
+    @AuthorizationAction("/permission/stratos/applications/manage")
     public Response undeployApplication(
             @PathParam("applicationId") String applicationId, @QueryParam("force") @DefaultValue("false") boolean force)
             throws RestAPIException {
@@ -1228,7 +1254,7 @@ public class StratosApiV41 extends AbstractApi {
     @GET
     @Path("/applications/{applicationId}/runtime")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getApplicationRuntime")
+    @AuthorizationAction("/permission/stratos/applications/view")
     public Response getApplicationRuntime(
             @PathParam("applicationId") String applicationId) throws RestAPIException {
         ApplicationInfoBean applicationRuntime = StratosApiV41Utils.getApplicationRuntime(applicationId);
@@ -1252,7 +1278,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/applications/{applicationId}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/removeApplication")
+    @AuthorizationAction("/permission/stratos/applications/manage")
     @SuperTenantService(true)
     public Response removeApplication(
             @PathParam("applicationId") String applicationId) throws RestAPIException {
@@ -1285,7 +1311,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/autoscalingPolicies")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getAutoscalingPolicies")
+    @AuthorizationAction("/permission/stratos/autoscalingPolicies/view")
     public Response getAutoscalingPolicies()
             throws RestAPIException {
         AutoscalePolicyBean[] autoScalePolicies = StratosApiV41Utils.getAutoScalePolicies();
@@ -1307,7 +1333,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/autoscalingPolicies/{autoscalePolicyId}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getAutoscalingPolicies")
+    @AuthorizationAction("/permission/stratos/autoscalingPolicies/view")
     public Response getAutoscalingPolicy(
             @PathParam("autoscalePolicyId") String autoscalePolicyId) throws RestAPIException {
         AutoscalePolicyBean autoScalePolicy = StratosApiV41Utils.getAutoScalePolicy(autoscalePolicyId);
@@ -1329,7 +1355,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/autoscalingPolicies")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/addAutoscalingPolicy")
+    @AuthorizationAction("/permission/stratos/autoscalingPolicies/manage")
     public Response addAutoscalingPolicy(
             AutoscalePolicyBean autoscalePolicy) throws RestAPIException {
 
@@ -1361,7 +1387,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/autoscalingPolicies")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/updateAutoscalingPolicy")
+    @AuthorizationAction("/permission/stratos/autoscalingPolicies/manage")
     public Response updateAutoscalingPolicy(
             AutoscalePolicyBean autoscalePolicy) throws RestAPIException {
 
@@ -1377,32 +1403,6 @@ public class StratosApiV41 extends AbstractApi {
     }
 
     /**
-     * Updates a network partition
-     *
-     * @param networkPartition Network Partition
-     * @return 200 if network partition is successfully updated
-     * @throws RestAPIException
-     */
-    @PUT
-    @Path("/networkPartitions")
-    @Produces("application/json")
-    @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/updateNetworkPartition")
-    public Response updateNetworkPartition(
-            NetworkPartitionBean networkPartition) throws RestAPIException {
-
-        try {
-            StratosApiV41Utils.updateNetworkPartition(networkPartition);
-        } catch (CloudControllerServiceNetworkPartitionNotExistsExceptionException e) {
-            return Response.status(Response.Status.NOT_FOUND).entity(new ResponseMessageBean(
-                    ResponseMessageBean.ERROR, "Network partition not found")).build();
-        }
-        return Response.ok().entity(new ResponseMessageBean(ResponseMessageBean.SUCCESS,
-                String.format("Network Partition updated successfully: [network-partition] %s",
-                        networkPartition.getId()))).build();
-    }
-
-    /**
      * Remove autoscaling policy.
      *
      * @param autoscalingPolicyId the autoscale policy
@@ -1413,7 +1413,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/autoscalingPolicies/{autoscalingPolicyId}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/removeAutoscalingPolicy")
+    @AuthorizationAction("/permission/stratos/autoscalingPolicies/manage")
     public Response removeAutoscalingPolicy(
             @PathParam("autoscalingPolicyId") String autoscalingPolicyId) throws RestAPIException {
 
@@ -1443,7 +1443,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/cluster/{clusterId}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/cluster")
+    @AuthorizationAction("/permission/stratos/applications/view")
     public Response getCluster(
             @PathParam("clusterId") String clusterId) throws RestAPIException {
         try {
@@ -1473,7 +1473,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/tenants")
     @Consumes("application/json")
     @Produces("application/json")
-    @AuthorizationAction("/permission/protected/manage/addTenant")
+    @AuthorizationAction("/permission/protected")
     @SuperTenantService(true)
     public Response addTenant(
             org.apache.stratos.common.beans.TenantInfoBean tenantInfoBean) throws RestAPIException {
@@ -1505,7 +1505,7 @@ public class StratosApiV41 extends AbstractApi {
     @PUT
     @Path("/tenants")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/updateTenant")
+    @AuthorizationAction("/permission/protected")
     @SuperTenantService(true)
     public Response updateTenant(
             org.apache.stratos.common.beans.TenantInfoBean tenantInfoBean) throws RestAPIException {
@@ -1542,7 +1542,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/tenants/{tenantDomain}")
     @Consumes("application/json")
     @Produces("application/json")
-    @AuthorizationAction("/permission/protected/manage/getTenantForDomain")
+    @AuthorizationAction("/permission/protected")
     @SuperTenantService(true)
     public Response getTenantForDomain(
             @PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
@@ -1572,7 +1572,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/tenants/{tenantDomain}")
     @Consumes("application/json")
     @Produces("application/json")
-    @AuthorizationAction("/permission/protected/manage/removeTenant")
+    @AuthorizationAction("/permission/protected")
     @SuperTenantService(true)
     public Response removeTenant(
             @PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
@@ -1591,7 +1591,7 @@ public class StratosApiV41 extends AbstractApi {
     @GET
     @Path("/tenants")
     @Produces("application/json")
-    @AuthorizationAction("/permission/protected/manage/getTenants")
+    @AuthorizationAction("/permission/protected")
     @SuperTenantService(true)
     public Response getTenants()
             throws RestAPIException {
@@ -1623,7 +1623,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/tenants/search/{tenantDomain}")
     @Consumes("application/json")
     @Produces("application/json")
-    @AuthorizationAction("/permission/protected/manage/getTenants")
+    @AuthorizationAction("/permission/protected")
     @SuperTenantService(true)
     public Response getPartialSearchTenants(
             @PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
@@ -1655,7 +1655,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/tenants/activate/{tenantDomain}")
     @Consumes("application/json")
     @Produces("application/json")
-    @AuthorizationAction("/permission/protected/manage/activateTenant")
+    @AuthorizationAction("/permission/protected")
     @SuperTenantService(true)
     public Response activateTenant(
             @PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
@@ -1682,7 +1682,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/tenants/deactivate/{tenantDomain}")
     @Consumes("application/json")
     @Produces("application/json")
-    @AuthorizationAction("/permission/protected/manage/deactivateTenant")
+    @AuthorizationAction("/permission/protected")
     @SuperTenantService(true)
     public Response deactivateTenant(
             @PathParam("tenantDomain") String tenantDomain) throws RestAPIException {
@@ -1711,7 +1711,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/repo/notify")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/notifyRepository")
+    @AuthorizationAction("/permission/stratos/applications/manage")
     public Response notifyRepository(
             GitNotificationPayloadBean payload) throws RestAPIException {
         if (log.isInfoEnabled()) {
@@ -1736,7 +1736,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/users")
     @Consumes("application/json")
     @Produces("application/json")
-    @AuthorizationAction("/permission/admin/manage/addUser")
+    @AuthorizationAction("/permission/admin")
     public Response addUser(
             UserInfoBean userInfoBean) throws RestAPIException {
 
@@ -1758,7 +1758,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/users/{userName}")
     @Consumes("application/json")
     @Produces("application/json")
-    @AuthorizationAction("/permission/admin/manage/removeUser")
+    @AuthorizationAction("/permission/admin")
     public Response removeUser(
             @PathParam("userName") String userName) throws RestAPIException {
         try {
@@ -1784,7 +1784,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/users")
     @Consumes("application/json")
     @Produces("application/json")
-    @AuthorizationAction("/permission/admin/manage/updateUser")
+    @AuthorizationAction("/permission/admin")
     public Response updateUser(
             UserInfoBean userInfoBean) throws RestAPIException {
 
@@ -1803,7 +1803,7 @@ public class StratosApiV41 extends AbstractApi {
     @GET
     @Path("/users")
     @Produces("application/json")
-    @AuthorizationAction("/permission/admin/manage/getUsers")
+    @AuthorizationAction("/permission/admin")
     public Response getUsers()
             throws RestAPIException {
 
@@ -1826,8 +1826,8 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/kubernetesClusters")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/addKubernetesCluster")
-    public Response addKubernetesHostCluster(
+    @AuthorizationAction("/permission/stratos/kubernetesClusters/manage")
+    public Response addKubernetesCluster(
             KubernetesClusterBean kubernetesCluster) throws RestAPIException {
 
         try {
@@ -1858,8 +1858,8 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/kubernetesClusters")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/updateKubernetesCluster")
-    public Response updateKubernetesHostCluster(
+    @AuthorizationAction("/permission/stratos/kubernetesClusters/manage")
+    public Response updateKubernetesCluster(
             KubernetesClusterBean kubernetesCluster) throws RestAPIException {
 
         try {
@@ -1888,7 +1888,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/kubernetesClusters/{kubernetesClusterId}/minion")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/addKubernetesHost")
+    @AuthorizationAction("/permission/stratos/kubernetesClusters/manage")
     public Response addKubernetesHost(
             @PathParam("kubernetesClusterId") String kubernetesClusterId, KubernetesHostBean kubernetesHost)
             throws RestAPIException {
@@ -1910,7 +1910,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/kubernetesClusters/{kubernetesClusterId}/master")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/updateKubernetesMaster")
+    @AuthorizationAction("/permission/stratos/kubernetesClusters/manage")
     public Response updateKubernetesMaster(
             KubernetesMasterBean kubernetesMaster) throws RestAPIException {
         try {
@@ -1929,7 +1929,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/kubernetesClusters/host")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/updateKubernetesHost")
+    @AuthorizationAction("/permission/stratos/kubernetesClusters/manage")
     public Response updateKubernetesHost(
             KubernetesHostBean kubernetesHost) throws RestAPIException {
         try {
@@ -1954,7 +1954,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/kubernetesClusters")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getKubernetesHostClusters")
+    @AuthorizationAction("/permission/stratos/kubernetesClusters/view")
     public Response getKubernetesHostClusters() throws RestAPIException {
         KubernetesClusterBean[] availableKubernetesClusters = StratosApiV41Utils.getAvailableKubernetesClusters();
         if (availableKubernetesClusters == null || availableKubernetesClusters.length == 0) {
@@ -1975,7 +1975,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/kubernetesClusters/{kubernetesClusterId}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getKubernetesHostClusters")
+    @AuthorizationAction("/permission/stratos/kubernetesClusters/view")
     public Response getKubernetesHostCluster(
             @PathParam("kubernetesClusterId") String kubernetesClusterId) throws RestAPIException {
         try {
@@ -1997,7 +1997,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/kubernetesClusters/{kubernetesClusterId}/hosts")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getKubernetesHostClusters")
+    @AuthorizationAction("/permission/stratos/kubernetesClusters/view")
     public Response getKubernetesHostsOfKubernetesCluster(
             @PathParam("kubernetesClusterId") String kubernetesClusterId) throws RestAPIException {
         try {
@@ -2019,7 +2019,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/kubernetesClusters/{kubernetesClusterId}/master")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/getKubernetesHostClusters")
+    @AuthorizationAction("/permission/stratos/kubernetesClusters/view")
     public Response getKubernetesMasterOfKubernetesCluster(
             @PathParam("kubernetesClusterId") String kubernetesClusterId) throws RestAPIException {
         try {
@@ -2041,7 +2041,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/kubernetesClusters/{kubernetesClusterId}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/removeKubernetesHostCluster")
+    @AuthorizationAction("/permission/stratos/kubernetesClusters/manage")
     public Response removeKubernetesHostCluster(
             @PathParam("kubernetesClusterId") String kubernetesClusterId) throws RestAPIException {
         try {
@@ -2069,7 +2069,7 @@ public class StratosApiV41 extends AbstractApi {
     @Path("/kubernetesClusters/{kubernetesClusterId}/hosts/{hostId}")
     @Produces("application/json")
     @Consumes("application/json")
-    @AuthorizationAction("/permission/protected/manage/removeKubernetesHostCluster")
+    @AuthorizationAction("/permission/stratos/kubernetesClusters/manage")
     public Response removeKubernetesHostOfKubernetesCluster(
             @PathParam("hostId") String kubernetesHostId) throws RestAPIException {
         try {