Search in sources :

Example 16 with XXUser

use of org.apache.ranger.entity.XXUser in project ranger by apache.

the class XPermMapService method getTransactionLog.

public List<XXTrxLog> getTransactionLog(VXPermMap vObj, VXPermMap mObj, String action) {
    if (vObj == null || action == null || ("update".equalsIgnoreCase(action) && mObj == null)) {
        return null;
    }
    boolean isGroupPolicy = true;
    if (vObj.getGroupId() == null) {
        isGroupPolicy = false;
    }
    Long groupId = null;
    Long userId = null;
    String groupName = null;
    String userName = null;
    if (isGroupPolicy) {
        groupId = vObj.getGroupId();
        XXGroup xGroup = daoManager.getXXGroup().getById(groupId);
        groupName = xGroup.getName();
    } else {
        userId = vObj.getUserId();
        XXUser xUser = daoManager.getXXUser().getById(userId);
        userName = xUser.getName();
    }
    List<XXTrxLog> trxLogList = new ArrayList<XXTrxLog>();
    Field[] fields = vObj.getClass().getDeclaredFields();
    try {
        for (Field field : fields) {
            field.setAccessible(true);
            String fieldName = field.getName();
            if (!trxLogAttrs.containsKey(fieldName)) {
                continue;
            // int policyType = vObj.getIpAddress();
            /*if(policyType == AppConstants.ASSET_HDFS){
					String[] ignoredAttribs = {"ipAddress"};
					if(ArrayUtils.contains(ignoredAttribs, fieldName)){
						continue;
					}
				}*/
            // } else {
            // if(isGroupPolicy){
            // if(fieldName.equalsIgnoreCase("userId")){
            // continue;
            // }
            // } else {
            // if (fieldName.equalsIgnoreCase("groupId")){
            // continue;
            // }
            // }
            }
            Long assetId = daoManager.getXXResource().getById(vObj.getResourceId()).getAssetId();
            int policyType = daoManager.getXXAsset().getById(assetId).getAssetType();
            if (policyType != AppConstants.ASSET_KNOX) {
                if ("ipAddress".equals(fieldName))
                    continue;
            }
            VTrxLogAttr vTrxLogAttr = trxLogAttrs.get(fieldName);
            XXTrxLog xTrxLog = new XXTrxLog();
            xTrxLog.setAttributeName(vTrxLogAttr.getAttribUserFriendlyName());
            String value = null, prevValue = "";
            boolean isEnum = vTrxLogAttr.isEnum();
            if (isEnum) {
                String enumName = XXPermMap.getEnumName(fieldName);
                int enumValue = field.get(vObj) == null ? 0 : Integer.parseInt("" + field.get(vObj));
                value = xaEnumUtil.getLabel(enumName, enumValue);
            } else {
                value = "" + field.get(vObj);
                // value = xUser.getName();
                if ("ipAddress".equals(fieldName) && "update".equalsIgnoreCase(action)) {
                    prevValue = "" + field.get(mObj);
                    value = "null".equalsIgnoreCase(value) ? "" : value;
                } else if (value == null || "null".equalsIgnoreCase(value) || stringUtil.isEmpty(value)) {
                    continue;
                }
            }
            if ("create".equalsIgnoreCase(action)) {
                xTrxLog.setNewValue(value);
            } else if ("delete".equalsIgnoreCase(action)) {
                xTrxLog.setPreviousValue(value);
            } else if ("update".equalsIgnoreCase(action)) {
                // Not Changed.
                xTrxLog.setNewValue(value);
                xTrxLog.setPreviousValue(value);
                if ("ipAddress".equals(fieldName)) {
                    xTrxLog.setPreviousValue(prevValue);
                }
            }
            xTrxLog.setAction(action);
            xTrxLog.setObjectClassType(AppConstants.CLASS_TYPE_XA_PERM_MAP);
            xTrxLog.setObjectId(vObj.getId());
            if (isGroupPolicy) {
                xTrxLog.setParentObjectClassType(AppConstants.CLASS_TYPE_XA_GROUP);
                xTrxLog.setParentObjectId(groupId);
                xTrxLog.setParentObjectName(groupName);
            } else {
                xTrxLog.setParentObjectClassType(AppConstants.CLASS_TYPE_XA_USER);
                xTrxLog.setParentObjectId(userId);
                xTrxLog.setParentObjectName(userName);
            }
            // xTrxLog.setObjectName(objectName);
            trxLogList.add(xTrxLog);
        }
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    } catch (SecurityException e) {
        e.printStackTrace();
    }
    return trxLogList;
}
Also used : XXUser(org.apache.ranger.entity.XXUser) ArrayList(java.util.ArrayList) XXTrxLog(org.apache.ranger.entity.XXTrxLog) VTrxLogAttr(org.apache.ranger.common.view.VTrxLogAttr) Field(java.lang.reflect.Field) SearchField(org.apache.ranger.common.SearchField) XXGroup(org.apache.ranger.entity.XXGroup)

Example 17 with XXUser

use of org.apache.ranger.entity.XXUser in project ranger by apache.

the class XPolicyService method mapPermObjToPermList.

private List<VXPermMap> mapPermObjToPermList(List<VXPermObj> permObjList, VXPolicy vXPolicy) {
    Long resId = vXPolicy.getId();
    List<VXPermMap> permMapList = new ArrayList<VXPermMap>();
    List<VXPermMap> updPermMapList = new ArrayList<VXPermMap>();
    Map<String, VXPermMap> newPermMap = new LinkedHashMap<String, VXPermMap>();
    Random rand = new Random();
    Map<String, XXPermMap> prevPermMap = getPrevPermMap(resId);
    if (permObjList == null) {
        permObjList = new ArrayList<VXPermObj>();
    }
    for (VXPermObj permObj : permObjList) {
        String permGrp = new Date() + " : " + rand.nextInt(9999);
        String ipAddress = permObj.getIpAddress();
        if (!stringUtil.isEmpty(permObj.getUserList())) {
            int permFor = AppConstants.XA_PERM_FOR_USER;
            for (String user : permObj.getUserList()) {
                XXUser xxUser = xaDaoMgr.getXXUser().findByUserName(user);
                if (xxUser == null) {
                    logger.error("No User found with this name : " + user);
                    throw restErrorUtil.createRESTException("No User found with name : " + user, MessageEnums.DATA_NOT_FOUND);
                }
                Long userId = xxUser.getId();
                for (String permission : permObj.getPermList()) {
                    int permType = AppConstants.getEnumFor_XAPermType(permission);
                    VXPermMap vXPermMap = new VXPermMap();
                    vXPermMap.setPermFor(AppConstants.XA_PERM_FOR_USER);
                    vXPermMap.setPermGroup(permGrp);
                    vXPermMap.setPermType(permType);
                    vXPermMap.setUserId(xxUser.getId());
                    vXPermMap.setResourceId(resId);
                    vXPermMap.setIpAddress(ipAddress);
                    permMapList.add(vXPermMap);
                    StringBuilder uniqueKey = new StringBuilder();
                    uniqueKey.append(resId + uniqueKeySeparator);
                    uniqueKey.append(permFor + uniqueKeySeparator);
                    uniqueKey.append(userId + uniqueKeySeparator);
                    uniqueKey.append(permType);
                    newPermMap.put(uniqueKey.toString(), vXPermMap);
                }
            }
        }
        if (!stringUtil.isEmpty(permObj.getGroupList())) {
            int permFor = AppConstants.XA_PERM_FOR_GROUP;
            for (String group : permObj.getGroupList()) {
                XXGroup xxGroup = xaDaoMgr.getXXGroup().findByGroupName(group);
                if (xxGroup == null) {
                    logger.error("No UserGroup found with this name : " + group);
                    throw restErrorUtil.createRESTException("No Group found with name : " + group, MessageEnums.DATA_NOT_FOUND);
                }
                Long grpId = xxGroup.getId();
                for (String permission : permObj.getPermList()) {
                    int permType = AppConstants.getEnumFor_XAPermType(permission);
                    VXPermMap vXPermMap = new VXPermMap();
                    vXPermMap.setPermFor(AppConstants.XA_PERM_FOR_GROUP);
                    vXPermMap.setPermGroup(permGrp);
                    vXPermMap.setPermType(permType);
                    vXPermMap.setGroupId(xxGroup.getId());
                    vXPermMap.setResourceId(resId);
                    vXPermMap.setIpAddress(ipAddress);
                    permMapList.add(vXPermMap);
                    StringBuilder uniqueKey = new StringBuilder();
                    uniqueKey.append(resId + uniqueKeySeparator);
                    uniqueKey.append(permFor + uniqueKeySeparator);
                    uniqueKey.append(grpId + uniqueKeySeparator);
                    uniqueKey.append(permType);
                    newPermMap.put(uniqueKey.toString(), vXPermMap);
                }
            }
        }
    }
    // Create Newly added permissions and Remove deleted permissions from DB
    if (prevPermMap.isEmpty()) {
        updPermMapList.addAll(permMapList);
    } else {
        for (Entry<String, VXPermMap> entry : newPermMap.entrySet()) {
            if (!prevPermMap.containsKey(entry.getKey())) {
                updPermMapList.add(entry.getValue());
            } else {
                VXPermMap vPMap = xPermMapService.populateViewBean(prevPermMap.get(entry.getKey()));
                VXPermMap vPMapNew = entry.getValue();
                vPMap.setIpAddress(vPMapNew.getIpAddress());
                updPermMapList.add(vPMap);
            }
        }
    }
    return updPermMapList;
}
Also used : XXUser(org.apache.ranger.entity.XXUser) VXPermMap(org.apache.ranger.view.VXPermMap) ArrayList(java.util.ArrayList) VXPermObj(org.apache.ranger.view.VXPermObj) Date(java.util.Date) LinkedHashMap(java.util.LinkedHashMap) XXGroup(org.apache.ranger.entity.XXGroup) Random(java.util.Random) XXPermMap(org.apache.ranger.entity.XXPermMap)

Example 18 with XXUser

use of org.apache.ranger.entity.XXUser in project ranger by apache.

the class XPolicyService method mapPermObjToPermList.

private List<VXPermMap> mapPermObjToPermList(List<VXPermObj> permObjList) {
    List<VXPermMap> permMapList = new ArrayList<VXPermMap>();
    Random rand = new Random();
    for (VXPermObj permObj : permObjList) {
        String ipAddress = permObj.getIpAddress();
        if (!stringUtil.isEmpty(permObj.getUserList())) {
            String permGrp = new Date() + " : " + rand.nextInt(9999);
            for (String user : permObj.getUserList()) {
                XXUser xxUser = xaDaoMgr.getXXUser().findByUserName(user);
                if (xxUser == null) {
                    logger.error("No User found with this name : " + user);
                    throw restErrorUtil.createRESTException("No User found with name : " + user, MessageEnums.DATA_NOT_FOUND);
                }
                for (String permission : permObj.getPermList()) {
                    VXPermMap vXPermMap = new VXPermMap();
                    int permType = AppConstants.getEnumFor_XAPermType(permission);
                    vXPermMap.setPermFor(AppConstants.XA_PERM_FOR_USER);
                    vXPermMap.setPermGroup(permGrp);
                    vXPermMap.setPermType(permType);
                    vXPermMap.setUserId(xxUser.getId());
                    vXPermMap.setIpAddress(ipAddress);
                    permMapList.add(vXPermMap);
                }
            }
        }
        if (!stringUtil.isEmpty(permObj.getGroupList())) {
            String permGrp = new Date() + " : " + rand.nextInt(9999);
            for (String group : permObj.getGroupList()) {
                XXGroup xxGroup = xaDaoMgr.getXXGroup().findByGroupName(group);
                if (xxGroup == null) {
                    logger.error("No UserGroup found with this name : " + group);
                    throw restErrorUtil.createRESTException("No User found with name : " + group, MessageEnums.DATA_NOT_FOUND);
                }
                for (String permission : permObj.getPermList()) {
                    VXPermMap vXPermMap = new VXPermMap();
                    int permType = AppConstants.getEnumFor_XAPermType(permission);
                    vXPermMap.setPermFor(AppConstants.XA_PERM_FOR_GROUP);
                    vXPermMap.setPermGroup(permGrp);
                    vXPermMap.setPermType(permType);
                    vXPermMap.setGroupId(xxGroup.getId());
                    vXPermMap.setIpAddress(ipAddress);
                    permMapList.add(vXPermMap);
                }
            }
        }
    }
    return permMapList;
}
Also used : XXUser(org.apache.ranger.entity.XXUser) VXPermMap(org.apache.ranger.view.VXPermMap) XXGroup(org.apache.ranger.entity.XXGroup) Random(java.util.Random) ArrayList(java.util.ArrayList) VXPermObj(org.apache.ranger.view.VXPermObj) Date(java.util.Date)

Example 19 with XXUser

use of org.apache.ranger.entity.XXUser in project ranger by apache.

the class XUserPermissionService method getPopulatedVXUserPermissionList.

public List<VXUserPermission> getPopulatedVXUserPermissionList(List<XXUserPermission> xuserPermissionList, Map<Long, XXUser> xXPortalUserIdXXUserMap, VXModuleDef vModuleDef) {
    List<VXUserPermission> vXUserPermissionList = new ArrayList<VXUserPermission>();
    XXUser xXUser = null;
    for (XXUserPermission xuserPermission : xuserPermissionList) {
        if (xXPortalUserIdXXUserMap.containsKey(xuserPermission.getUserId())) {
            xXUser = xXPortalUserIdXXUserMap.get(xuserPermission.getUserId());
            VXUserPermission vXUserPerm = new VXUserPermission();
            vXUserPerm.setId(xuserPermission.getId());
            vXUserPerm.setUserId(xXUser.getId());
            vXUserPerm.setModuleId(xuserPermission.getModuleId());
            vXUserPerm.setIsAllowed(xuserPermission.getIsAllowed());
            vXUserPerm.setCreateDate(xuserPermission.getCreateTime());
            vXUserPerm.setUpdateDate(xuserPermission.getUpdateTime());
            vXUserPerm.setModuleName(vModuleDef.getModule());
            vXUserPerm.setLoginId(xXUser.getName());
            vXUserPerm.setUserName(xXUser.getName());
            vXUserPermissionList.add(vXUserPerm);
        }
    }
    return vXUserPermissionList;
}
Also used : XXUser(org.apache.ranger.entity.XXUser) ArrayList(java.util.ArrayList) XXUserPermission(org.apache.ranger.entity.XXUserPermission) VXUserPermission(org.apache.ranger.view.VXUserPermission)

Example 20 with XXUser

use of org.apache.ranger.entity.XXUser in project ranger by apache.

the class XUserPermissionServiceBase method mapEntityToViewBean.

@Override
protected V mapEntityToViewBean(V vObj, T mObj) {
    // As XXUserPermission.userID refers to XXPortalUser.ID, But UI/Client expects XXUser.ID so have to map
    // XXUserPermission.userID from XXPortalUser.ID to XXUser.ID
    XXUser xUser = daoManager.getXXUser().findByPortalUserId(mObj.getUserId());
    Long userId;
    if (xUser != null) {
        userId = xUser.getId();
    } else {
        // In this case rather throwing exception, send it as null
        userId = null;
    }
    vObj.setUserId(userId);
    vObj.setModuleId(mObj.getModuleId());
    vObj.setIsAllowed(mObj.getIsAllowed());
    return vObj;
}
Also used : XXUser(org.apache.ranger.entity.XXUser)

Aggregations

XXUser (org.apache.ranger.entity.XXUser)36 ArrayList (java.util.ArrayList)15 XXPortalUser (org.apache.ranger.entity.XXPortalUser)12 XXGroup (org.apache.ranger.entity.XXGroup)10 XXUserDao (org.apache.ranger.db.XXUserDao)9 XXTrxLog (org.apache.ranger.entity.XXTrxLog)9 UserSessionBase (org.apache.ranger.common.UserSessionBase)8 VXUser (org.apache.ranger.view.VXUser)8 Test (org.junit.Test)7 HashMap (java.util.HashMap)6 XXPortalUserDao (org.apache.ranger.db.XXPortalUserDao)5 XXUserPermission (org.apache.ranger.entity.XXUserPermission)5 VXString (org.apache.ranger.view.VXString)5 XXPermMap (org.apache.ranger.entity.XXPermMap)4 Field (java.lang.reflect.Field)3 SearchCriteria (org.apache.ranger.common.SearchCriteria)3 SearchField (org.apache.ranger.common.SearchField)3 VTrxLogAttr (org.apache.ranger.common.view.VTrxLogAttr)3 XXAuditMapDao (org.apache.ranger.db.XXAuditMapDao)3 XXGroupUserDao (org.apache.ranger.db.XXGroupUserDao)3