/*
*Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
*WSO2 Inc. licenses this file to you under the Apache License,
*Version 2.0 (the "License"); you may not use this file except
*in compliance with the License.
*You may obtain a copy of the License at
*
*http://www.apache.org/licenses/LICENSE-2.0
*
*Unless required by applicable law or agreed to in writing,
*software distributed under the License is distributed on an
*"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
*KIND, either express or implied. See the License for the
*specific language governing permissions and limitations
*under the License.
*/
package org.wso2.carbon.esb.rest.test.security;
import junit.framework.Assert;
import org.testng.annotations.BeforeTest;
import org.wso2.carbon.automation.engine.context.AutomationContext;
import org.wso2.carbon.automation.engine.context.TestUserMode;
import org.wso2.carbon.automation.engine.context.beans.User;
import org.wso2.carbon.integration.common.admin.client.UserManagementClient;
import org.wso2.carbon.integration.common.utils.LoginLogoutClient;
import org.wso2.esb.integration.common.clients.registry.ResourceAdminServiceClient;
/**
* This test case is supposed to add a user who is not belongs to admin user group. Then this user
* will be used in other test cases which needs non admin user and user group
*/
public class NonAdminUserCreationTestCase {
protected static User nonAdminUser = null;
protected final String ROLE_NAME = "nonadmin";
@BeforeTest(alwaysRun = true)
public void addNonAdminUser() throws Exception {
AutomationContext esbContext = new AutomationContext("ESB", TestUserMode.SUPER_TENANT_ADMIN);
String sessionCookie = new LoginLogoutClient(esbContext).login();
ResourceAdminServiceClient resourceAdmin = new ResourceAdminServiceClient(esbContext.getContextUrls().getBackEndUrl(), sessionCookie);
UserManagementClient userManagementClient = new UserManagementClient(esbContext.getContextUrls().getBackEndUrl(), sessionCookie);
//done this change due to a bug in UM - please refer to carbon dev mail
// "G-Reg integration test failures due to user mgt issue."
String[] permissions = {"/permission/admin/configure/",
"/permission/admin/login",
"/permission/admin/manage/",
"/permission/admin/monitor",
"/permission/protected"};
if (!userManagementClient.roleNameExists(ROLE_NAME)) {
userManagementClient.addRole(ROLE_NAME, null, permissions);
resourceAdmin.addResourcePermission("/", ROLE_NAME, "3", "1");
resourceAdmin.addResourcePermission("/", ROLE_NAME, "2", "1");
resourceAdmin.addResourcePermission("/", ROLE_NAME, "4", "1");
resourceAdmin.addResourcePermission("/", ROLE_NAME, "5", "1");
}
userManagementClient.addUser("nonadminuser", "password", new String[]{ROLE_NAME}, null);
//check user creation
nonAdminUser = new User();
nonAdminUser.setUserName("nonadminuser");
nonAdminUser.setPassword("password");
}
protected static User getUser(){
Assert.assertNotNull( "User is not created. Please create the user first", nonAdminUser);
return nonAdminUser;
}
}