Search in sources :

Example 16 with VXUser

use of org.apache.ranger.view.VXUser in project ranger by apache.

the class TestXUserREST method test19secureUpdateXUser.

@Test
public void test19secureUpdateXUser() {
    Boolean val = true;
    Mockito.when(bizUtil.checkUserAccessible(vxUser)).thenReturn(val);
    Mockito.when(xUserMgr.updateXUser(vxUser)).thenReturn(vxUser);
    VXUser gotVXUser = xUserRest.secureUpdateXUser(vxUser);
    Mockito.verify(xUserMgr).updateXUser(vxUser);
    Mockito.verify(bizUtil).checkUserAccessible(vxUser);
    assertNotNull(gotVXUser);
    assertEquals(vxUser.getId(), gotVXUser.getId());
    assertEquals(vxUser.getName(), gotVXUser.getName());
}
Also used : VXUser(org.apache.ranger.view.VXUser) Test(org.junit.Test)

Example 17 with VXUser

use of org.apache.ranger.view.VXUser in project ranger by apache.

the class TestXUserREST method test65deleteXUserByUserNametrue.

@Test
public void test65deleteXUserByUserNametrue() {
    HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
    String TestforceDeleteStr = "false";
    boolean forceDelete = true;
    Mockito.when(request.getParameter("forceDelete")).thenReturn(TestforceDeleteStr);
    VXUser testUser = createVXUser();
    Mockito.when(xUserService.getXUserByUserName(testUser.getName())).thenReturn(testUser);
    forceDelete = false;
    Mockito.doNothing().when(xUserMgr).deleteXUser(testUser.getId(), forceDelete);
    xUserRest.deleteXUserByUserName(testUser.getName(), request);
    Mockito.verify(xUserMgr).deleteXUser(testUser.getId(), forceDelete);
    Mockito.verify(xUserService).getXUserByUserName(testUser.getName());
    Mockito.verify(request).getParameter("forceDelete");
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) VXString(org.apache.ranger.view.VXString) VXUser(org.apache.ranger.view.VXUser) Test(org.junit.Test)

Example 18 with VXUser

use of org.apache.ranger.view.VXUser in project ranger by apache.

the class TestXUserREST method test15createXUser.

@Test
public void test15createXUser() {
    Mockito.when(xUserMgr.createXUserWithOutLogin(vxUser)).thenReturn(vxUser);
    VXUser gotVXUser = xUserRest.createXUser(vxUser);
    Mockito.verify(xUserMgr).createXUserWithOutLogin(vxUser);
    assertNotNull(gotVXUser);
    assertEquals(vxUser.getId(), gotVXUser.getId());
    assertEquals(vxUser.getName(), gotVXUser.getName());
}
Also used : VXUser(org.apache.ranger.view.VXUser) Test(org.junit.Test)

Example 19 with VXUser

use of org.apache.ranger.view.VXUser in project ranger by apache.

the class ServiceREST method grantAccess.

@POST
@Path("/services/grant/{serviceName}")
@Produces({ "application/json", "application/xml" })
public RESTResponse grantAccess(@PathParam("serviceName") String serviceName, GrantRevokeRequest grantRequest, @Context HttpServletRequest request) throws Exception {
    if (LOG.isDebugEnabled()) {
        LOG.debug("==> ServiceREST.grantAccess(" + serviceName + ", " + grantRequest + ")");
    }
    RESTResponse ret = new RESTResponse();
    RangerPerfTracer perf = null;
    if (grantRequest != null) {
        if (serviceUtil.isValidateHttpsAuthentication(serviceName, request)) {
            try {
                if (RangerPerfTracer.isPerfTraceEnabled(PERF_LOG)) {
                    perf = RangerPerfTracer.getPerfTracer(PERF_LOG, "ServiceREST.grantAccess(serviceName=" + serviceName + ")");
                }
                validateGrantRevokeRequest(grantRequest);
                String userName = grantRequest.getGrantor();
                Set<String> userGroups = CollectionUtils.isNotEmpty(grantRequest.getGrantorGroups()) ? grantRequest.getGrantorGroups() : userMgr.getGroupsForUser(userName);
                RangerAccessResource resource = new RangerAccessResourceImpl(StringUtil.toStringObjectMap(grantRequest.getResource()));
                VXUser vxUser = xUserService.getXUserByUserName(userName);
                if (vxUser.getUserRoleList().contains(RangerConstants.ROLE_ADMIN_AUDITOR) || vxUser.getUserRoleList().contains(RangerConstants.ROLE_KEY_ADMIN_AUDITOR)) {
                    VXResponse vXResponse = new VXResponse();
                    vXResponse.setStatusCode(HttpServletResponse.SC_UNAUTHORIZED);
                    vXResponse.setMsgDesc("Operation" + " denied. LoggedInUser=" + vxUser.getId() + " ,isn't permitted to perform the action.");
                    throw restErrorUtil.generateRESTException(vXResponse);
                }
                boolean isAdmin = hasAdminAccess(serviceName, userName, userGroups, resource);
                if (!isAdmin) {
                    throw restErrorUtil.createGrantRevokeRESTException("User doesn't have necessary permission to grant access");
                }
                RangerPolicy policy = getExactMatchPolicyForResource(serviceName, resource, userName);
                if (policy != null) {
                    boolean policyUpdated = false;
                    policyUpdated = ServiceRESTUtil.processGrantRequest(policy, grantRequest);
                    if (policyUpdated) {
                        svcStore.updatePolicy(policy);
                    } else {
                        LOG.error("processGrantRequest processing failed");
                        throw new Exception("processGrantRequest processing failed");
                    }
                } else {
                    policy = new RangerPolicy();
                    policy.setService(serviceName);
                    // TODO: better policy name
                    policy.setName("grant-" + System.currentTimeMillis());
                    policy.setDescription("created by grant");
                    policy.setIsAuditEnabled(grantRequest.getEnableAudit());
                    policy.setCreatedBy(userName);
                    Map<String, RangerPolicyResource> policyResources = new HashMap<String, RangerPolicyResource>();
                    Set<String> resourceNames = resource.getKeys();
                    if (!CollectionUtils.isEmpty(resourceNames)) {
                        for (String resourceName : resourceNames) {
                            RangerPolicyResource policyResource = new RangerPolicyResource((String) resource.getValue(resourceName));
                            policyResource.setIsRecursive(grantRequest.getIsRecursive());
                            policyResources.put(resourceName, policyResource);
                        }
                    }
                    policy.setResources(policyResources);
                    RangerPolicyItem policyItem = new RangerPolicyItem();
                    policyItem.setDelegateAdmin(grantRequest.getDelegateAdmin());
                    policyItem.getUsers().addAll(grantRequest.getUsers());
                    policyItem.getGroups().addAll(grantRequest.getGroups());
                    for (String accessType : grantRequest.getAccessTypes()) {
                        policyItem.getAccesses().add(new RangerPolicyItemAccess(accessType, Boolean.TRUE));
                    }
                    policy.getPolicyItems().add(policyItem);
                    svcStore.createPolicy(policy);
                }
            } catch (WebApplicationException excp) {
                throw excp;
            } catch (Throwable excp) {
                LOG.error("grantAccess(" + serviceName + ", " + grantRequest + ") failed", excp);
                throw restErrorUtil.createRESTException(excp.getMessage());
            } finally {
                RangerPerfTracer.log(perf);
            }
            ret.setStatusCode(RESTResponse.STATUS_SUCCESS);
        }
    }
    if (LOG.isDebugEnabled()) {
        LOG.debug("<== ServiceREST.grantAccess(" + serviceName + ", " + grantRequest + "): " + ret);
    }
    return ret;
}
Also used : VXResponse(org.apache.ranger.view.VXResponse) WebApplicationException(javax.ws.rs.WebApplicationException) RangerPerfTracer(org.apache.ranger.plugin.util.RangerPerfTracer) LinkedHashMap(java.util.LinkedHashMap) HashMap(java.util.HashMap) RangerPolicyResource(org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyResource) VXString(org.apache.ranger.view.VXString) VXUser(org.apache.ranger.view.VXUser) RangerPolicyItem(org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItem) WebApplicationException(javax.ws.rs.WebApplicationException) IOException(java.io.IOException) JsonSyntaxException(com.google.gson.JsonSyntaxException) RangerPolicy(org.apache.ranger.plugin.model.RangerPolicy) RangerAccessResourceImpl(org.apache.ranger.plugin.policyengine.RangerAccessResourceImpl) RESTResponse(org.apache.ranger.admin.client.datatype.RESTResponse) RangerPolicyItemAccess(org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItemAccess) RangerAccessResource(org.apache.ranger.plugin.policyengine.RangerAccessResource) Path(javax.ws.rs.Path) POST(javax.ws.rs.POST) Produces(javax.ws.rs.Produces)

Example 20 with VXUser

use of org.apache.ranger.view.VXUser in project ranger by apache.

the class XUserService method populateViewBean.

@Override
public VXUser populateViewBean(XXUser xUser) {
    VXUser vObj = super.populateViewBean(xUser);
    vObj.setIsVisible(xUser.getIsVisible());
    String userName = vObj.getName();
    populateUserAttributes(userName, vObj);
    populateGroupList(xUser.getId(), vObj);
    return vObj;
}
Also used : VXUser(org.apache.ranger.view.VXUser)

Aggregations

VXUser (org.apache.ranger.view.VXUser)42 Test (org.junit.Test)31 VXString (org.apache.ranger.view.VXString)21 ArrayList (java.util.ArrayList)13 HttpServletRequest (javax.servlet.http.HttpServletRequest)11 XXUser (org.apache.ranger.entity.XXUser)8 XXPortalUser (org.apache.ranger.entity.XXPortalUser)6 VXStringList (org.apache.ranger.view.VXStringList)6 VXPortalUser (org.apache.ranger.view.VXPortalUser)5 HashMap (java.util.HashMap)4 XXModuleDefDao (org.apache.ranger.db.XXModuleDefDao)4 XXPortalUserRoleDao (org.apache.ranger.db.XXPortalUserRoleDao)4 XXUserDao (org.apache.ranger.db.XXUserDao)4 VXUserList (org.apache.ranger.view.VXUserList)4 Date (java.util.Date)3 XXPortalUserRole (org.apache.ranger.entity.XXPortalUserRole)3 VXGroup (org.apache.ranger.view.VXGroup)3 JsonSyntaxException (com.google.gson.JsonSyntaxException)2 IOException (java.io.IOException)2 List (java.util.List)2