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;
}
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;
}
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");
}
}
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;
}
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;
}
Aggregations