Search in sources :

Example 21 with XXUser

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

the class XUserServiceBase method searchXUsers.

/**
 * @param searchCriteria
 * @return
 */
public VXUserList searchXUsers(SearchCriteria searchCriteria) {
    VXUserList returnList = new VXUserList();
    List<VXUser> xUserList = new ArrayList<VXUser>();
    @SuppressWarnings("unchecked") List<XXUser> resultList = (List<XXUser>) searchResources(searchCriteria, searchFields, sortFields, returnList);
    // Iterate over the result list and create the return list
    for (XXUser gjXUser : resultList) {
        @SuppressWarnings("unchecked") VXUser vXUser = populateViewBean((T) gjXUser);
        xUserList.add(vXUser);
    }
    returnList.setVXUsers(xUserList);
    return returnList;
}
Also used : XXUser(org.apache.ranger.entity.XXUser) ArrayList(java.util.ArrayList) List(java.util.List) VXUserList(org.apache.ranger.view.VXUserList) ArrayList(java.util.ArrayList) VXUser(org.apache.ranger.view.VXUser) VXUserList(org.apache.ranger.view.VXUserList)

Example 22 with XXUser

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

the class ServiceDBStore method createService.

@Override
public RangerService createService(RangerService service) throws Exception {
    if (LOG.isDebugEnabled()) {
        LOG.debug("==> ServiceDBStore.createService(" + service + ")");
    }
    if (service == null) {
        throw restErrorUtil.createRESTException("Service object cannot be null.", MessageEnums.ERROR_CREATING_OBJECT);
    }
    boolean createDefaultPolicy = true;
    Map<String, String> configs = service.getConfigs();
    Map<String, String> validConfigs = validateRequiredConfigParams(service, configs);
    if (validConfigs == null) {
        if (LOG.isDebugEnabled()) {
            LOG.debug("==> ConfigParams cannot be null, ServiceDBStore.createService(" + service + ")");
        }
        throw restErrorUtil.createRESTException("ConfigParams cannot be null.", MessageEnums.ERROR_CREATING_OBJECT);
    }
    // While creating, value of version should be 1.
    service.setVersion(Long.valueOf(1));
    service.setTagVersion(Long.valueOf(1));
    if (populateExistingBaseFields) {
        svcServiceWithAssignedId.setPopulateExistingBaseFields(true);
        daoMgr.getXXService().setIdentityInsert(true);
        service = svcServiceWithAssignedId.create(service);
        daoMgr.getXXService().setIdentityInsert(false);
        daoMgr.getXXService().updateSequence();
        svcServiceWithAssignedId.setPopulateExistingBaseFields(false);
        createDefaultPolicy = false;
    } else {
        service = svcService.create(service);
    }
    XXService xCreatedService = daoMgr.getXXService().getById(service.getId());
    VXUser vXUser = null;
    XXServiceConfigMapDao xConfMapDao = daoMgr.getXXServiceConfigMap();
    for (Entry<String, String> configMap : validConfigs.entrySet()) {
        String configKey = configMap.getKey();
        String configValue = configMap.getValue();
        if (StringUtils.equalsIgnoreCase(configKey, "username")) {
            String userName = stringUtil.getValidUserName(configValue);
            XXUser xxUser = daoMgr.getXXUser().findByUserName(userName);
            if (xxUser != null) {
                vXUser = xUserService.populateViewBean(xxUser);
            } else {
                UserSessionBase usb = ContextUtil.getCurrentUserSession();
                if (usb != null && !usb.isUserAdmin() && !usb.isSpnegoEnabled()) {
                    throw restErrorUtil.createRESTException("User does not exist with given username: [" + userName + "] please use existing user", MessageEnums.OPER_NO_PERMISSION);
                }
                vXUser = xUserMgr.createServiceConfigUser(userName);
            }
        }
        if (StringUtils.equalsIgnoreCase(configKey, CONFIG_KEY_PASSWORD)) {
            String cryptConfigString = CRYPT_ALGO + "," + ENCRYPT_KEY + "," + SALT + "," + ITERATION_COUNT + "," + configValue;
            String encryptedPwd = PasswordUtils.encryptPassword(cryptConfigString);
            encryptedPwd = CRYPT_ALGO + "," + ENCRYPT_KEY + "," + SALT + "," + ITERATION_COUNT + "," + encryptedPwd;
            String decryptedPwd = PasswordUtils.decryptPassword(encryptedPwd);
            if (StringUtils.equals(decryptedPwd, configValue)) {
                configValue = encryptedPwd;
            }
        }
        XXServiceConfigMap xConfMap = new XXServiceConfigMap();
        xConfMap = rangerAuditFields.populateAuditFields(xConfMap, xCreatedService);
        xConfMap.setServiceId(xCreatedService.getId());
        xConfMap.setConfigkey(configKey);
        xConfMap.setConfigvalue(configValue);
        xConfMapDao.create(xConfMap);
    }
    if (LOG.isDebugEnabled()) {
        LOG.debug("vXUser:[" + vXUser + "]");
    }
    RangerService createdService = svcService.getPopulatedViewObject(xCreatedService);
    if (createdService == null) {
        throw restErrorUtil.createRESTException("Could not create service - Internal error ", MessageEnums.ERROR_CREATING_OBJECT);
    }
    dataHistService.createObjectDataHistory(createdService, RangerDataHistService.ACTION_CREATE);
    List<XXTrxLog> trxLogList = svcService.getTransactionLog(createdService, RangerServiceService.OPERATION_CREATE_CONTEXT);
    bizUtil.createTrxLog(trxLogList);
    if (createDefaultPolicy) {
        createDefaultPolicies(createdService);
    }
    return createdService;
}
Also used : XXUser(org.apache.ranger.entity.XXUser) VXString(org.apache.ranger.view.VXString) XXTrxLog(org.apache.ranger.entity.XXTrxLog) VXUser(org.apache.ranger.view.VXUser) XXServiceConfigMapDao(org.apache.ranger.db.XXServiceConfigMapDao) UserSessionBase(org.apache.ranger.common.UserSessionBase) XXServiceConfigMap(org.apache.ranger.entity.XXServiceConfigMap) RangerService(org.apache.ranger.plugin.model.RangerService) XXService(org.apache.ranger.entity.XXService)

Example 23 with XXUser

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

the class SessionMgr method resetUserModulePermission.

public void resetUserModulePermission(UserSessionBase userSession) {
    XXUser xUser = daoManager.getXXUser().findByUserName(userSession.getLoginId());
    if (xUser != null) {
        List<String> permissionList = daoManager.getXXModuleDef().findAccessibleModulesByUserId(userSession.getUserId(), xUser.getId());
        CopyOnWriteArraySet<String> userPermissions = new CopyOnWriteArraySet<String>(permissionList);
        UserSessionBase.RangerUserPermission rangerUserPermission = userSession.getRangerUserPermission();
        if (rangerUserPermission == null) {
            rangerUserPermission = new UserSessionBase.RangerUserPermission();
        }
        rangerUserPermission.setUserPermissions(userPermissions);
        rangerUserPermission.setLastUpdatedTime(Calendar.getInstance().getTimeInMillis());
        userSession.setRangerUserPermission(rangerUserPermission);
        logger.info("UserSession Updated to set new Permissions to User: " + userSession.getLoginId());
    } else {
        logger.error("No XUser found with username: " + userSession.getLoginId() + "So Permission is not set for the user");
    }
}
Also used : XXUser(org.apache.ranger.entity.XXUser) CopyOnWriteArraySet(java.util.concurrent.CopyOnWriteArraySet) UserSessionBase(org.apache.ranger.common.UserSessionBase)

Example 24 with XXUser

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

the class UserMgr method updateOldUserName.

@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public XXPortalUser updateOldUserName(String userLoginId, String newUserName, String currentPassword) {
    if (userLoginId == null || newUserName == null || userLoginId.trim().isEmpty() || newUserName.trim().isEmpty()) {
        return null;
    }
    XXPortalUser xXPortalUser = this.findByLoginId(userLoginId);
    XXUser xXUser = daoManager.getXXUser().findByUserName(userLoginId);
    if (xXPortalUser == null || xXUser == null) {
        return null;
    }
    xXUser.setName(newUserName);
    daoManager.getXXUser().update(xXUser);
    xXPortalUser.setLoginId(newUserName);
    // The old password needs to be encrypted by the new user name
    String updatedPwd = encrypt(newUserName, currentPassword);
    if (xXPortalUser.getUserSource() == RangerCommonEnums.USER_APP) {
        xXPortalUser.setPassword(updatedPwd);
    } else if (xXPortalUser.getUserSource() == RangerCommonEnums.USER_EXTERNAL) {
        xXPortalUser.setPassword(xXPortalUser.getPassword());
    }
    xXPortalUser = daoManager.getXXPortalUser().update(xXPortalUser);
    List<XXTrxLog> trxLogList = new ArrayList<XXTrxLog>();
    XXTrxLog xTrxLog = new XXTrxLog();
    xTrxLog.setAttributeName("User Name");
    xTrxLog.setPreviousValue(userLoginId);
    xTrxLog.setNewValue(newUserName);
    xTrxLog.setAction("update");
    xTrxLog.setObjectClassType(AppConstants.CLASS_TYPE_USER_PROFILE);
    xTrxLog.setObjectId(xXPortalUser.getId());
    xTrxLog.setObjectName(xXPortalUser.getLoginId());
    xTrxLog.setAddedByUserId(xXPortalUser.getId());
    xTrxLog.setUpdatedByUserId(xXPortalUser.getId());
    trxLogList.add(xTrxLog);
    rangerBizUtil.createTrxLog(trxLogList);
    return xXPortalUser;
}
Also used : XXPortalUser(org.apache.ranger.entity.XXPortalUser) XXUser(org.apache.ranger.entity.XXUser) ArrayList(java.util.ArrayList) VXString(org.apache.ranger.view.VXString) XXTrxLog(org.apache.ranger.entity.XXTrxLog) Transactional(org.springframework.transaction.annotation.Transactional)

Example 25 with XXUser

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

the class XUserMgr method getXGroupUserFromMap.

public VXGroupUserInfo getXGroupUserFromMap(String groupName) {
    checkAdminAccess();
    VXGroupUserInfo vxGUInfo = new VXGroupUserInfo();
    XXGroup xGroup = daoManager.getXXGroup().findByGroupName(groupName);
    if (xGroup == null) {
        return vxGUInfo;
    }
    VXGroup xgroupInfo = xGroupService.populateViewBean(xGroup);
    vxGUInfo.setXgroupInfo(xgroupInfo);
    SearchCriteria searchCriteria = new SearchCriteria();
    searchCriteria.addParam("xGroupId", xGroup.getId());
    VXGroupUserList vxGroupUserList = searchXGroupUsers(searchCriteria);
    List<VXUser> vxu = new ArrayList<VXUser>();
    logger.debug("removing all the group user mapping for : " + xGroup.getName());
    for (VXGroupUser groupUser : vxGroupUserList.getList()) {
        XXUser xUser = daoManager.getXXUser().getById(groupUser.getUserId());
        if (xUser != null) {
            VXUser vxUser = new VXUser();
            vxUser.setName(xUser.getName());
            XXPortalUser xXPortalUser = daoManager.getXXPortalUser().findByLoginId(xUser.getName());
            if (xXPortalUser != null) {
                List<String> existingRole = daoManager.getXXPortalUserRole().findXPortalUserRolebyXPortalUserId(xXPortalUser.getId());
                if (existingRole != null) {
                    vxUser.setUserRoleList(existingRole);
                }
            }
            vxu.add(vxUser);
        }
    }
    vxGUInfo.setXuserInfo(vxu);
    return vxGUInfo;
}
Also used : XXUser(org.apache.ranger.entity.XXUser) ArrayList(java.util.ArrayList) SearchCriteria(org.apache.ranger.common.SearchCriteria) XXPortalUser(org.apache.ranger.entity.XXPortalUser) XXGroup(org.apache.ranger.entity.XXGroup)

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