How to add custom permissions to the current permission tree in WSO2 products.
Method 1.
You can add ap
To do so,
- Go to Management console -> Main -> Service Providers -> Add Enter Service Provider name, then expand role/permission configuration. (https://localhost:9443/carbon)
 - As it added you can find a new role. It is created for this service provider.
 - Then it will edit the service providers that you created to add Permissions. Go to 'Role/Permission Configuration'.
 - Add new Permission for application and click ‘Update’
 - To verify the permission is added, go to ‘permission tree’ at Home > Configure > Users and Roles > Roles > Permissions.
 
Method 2.
You can add new permissions to the existing permission tree through the registry browse in the Management Console. 
To do so,
- Go to Main -> Resources -> Browse -> /_system/governance/permission Add Collection, then set the property to the created collection.
 - Make sure Name should be a "name" when set the property under the property section.
 - Click the add button.
 
Retrieve assigned permissions of the role
You can use
- Set the <HideAdminServiceWSDLs> element to false in the <PRODUCT_HOME>/repository/conf/carbon.xml file.
 - Run the server using this command "sh wso2server
 sh -DosgiConsole".  - When the server is started, hit the enter/return key several times to get the OSGI shell in the console.
 - In the OSGI shell, type: 
 >osgi  .listAdminServices  - Use this WSDL for invoking the login method.
 
http://localhost:9763/services/AuthenticationAdmin?wsdl
- After you invoke the login method you will get a JSESSIONID as a response.
 - Then you can invoke the 
getRolePermissions method using this JSESSIONID. - For invoking 
getRolePermissions methoduse this WSDL.  
https://<HOST>: 8243/services/UserAdmin? wsdl 
😉 When you invoke these methods from SOAPUI please change the port number to 9443.