in security-admin/scripts/rolebasedusersearchutil.py [0:0]
def main(argv):
FORMAT = '%(asctime)-15s %(message)s'
logging.basicConfig(format=FORMAT, level=logging.DEBUG)
ews_lib = os.path.join(RANGER_ADMIN_HOME,"ews","lib")
app_home = os.path.join(RANGER_ADMIN_HOME,"ews","webapp")
ranger_log = os.path.join(RANGER_ADMIN_HOME,"ews","logs")
if os.environ['JAVA_HOME'] == "":
log("[E] ---------- JAVA_HOME environment property not defined, aborting installation. ----------", "error")
sys.exit(1)
JAVA_BIN=os.path.join(os.environ['JAVA_HOME'],'bin','java')
if os_name == "WINDOWS" :
JAVA_BIN = JAVA_BIN+'.exe'
if os.path.isfile(JAVA_BIN):
pass
else:
while os.path.isfile(JAVA_BIN) == False:
log("Enter java executable path: :","info")
JAVA_BIN=input()
log("[I] Using Java:" + str(JAVA_BIN),"info")
userName = ""
password = ""
userRole = ""
userNameMsgFlag = False
passwordMsgFlag = False
userRoleMsgFlag = False
userroleFlag = False
if len(argv) == 1:
log("[I] " +msgPrompt + " or \n" + msgCommand + "\n " +msgRoleList, "info")
userName = input('Enter a user name: ')
password = getpass.getpass('Enter a user password:')
userRole = input('Enter a role: ')
elif len(argv) > 1 and len(argv) < 8 :
for i in range(1, len(sys.argv)) :
if sys.argv[i] == "-u" :
if len(argv)-1 > i+1 or len(argv)-1 == i+1:
userName = sys.argv[i+1]
continue
if sys.argv[i] == "-p" :
if len(argv)-1 > i+1 or len(argv)-1 == i+1:
password = sys.argv[i+1]
continue
if sys.argv[i] == "-r" :
if len(argv)-1 > i+1 or len(argv)-1 == i+1:
userRole = sys.argv[i+1]
userroleFlag = True
continue
else:
log("[E] Invalid argument list.", "error")
log("[I] " + msgCommand + "\n " + msgRoleList, "info")
sys.exit(1)
if userName == "" :
userNameMsgFlag = True
elif userName != "" :
if userName.lower() == "-p" or userName.lower() == "-r" or userName.lower() == "-u" :
userNameMsgFlag = True
if password == "" :
passwordMsgFlag = True
elif password.lower() == "-p" or password.lower() == "-r" or password.lower() == "-u" :
passwordMsgFlag = True
if userroleFlag == True :
if userRole == "":
userRoleMsgFlag = True
elif userRole != "":
if userRole.lower() == "-p" or userRole.lower() == "-r" or userRole.lower() == "-u":
userRoleMsgFlag = True
if userNameMsgFlag == True or passwordMsgFlag == True or userRoleMsgFlag == True :
log("[I] "+msgPrompt + " or \n" + msgCommand + "\n " +msgRoleList, "info")
if userNameMsgFlag == True :
userName = input('Enter a user name: ')
if passwordMsgFlag == True :
password = getpass.getpass("Enter user password:")
if userRoleMsgFlag == True :
userRole = input('Enter a role: ')
if userName != "" and password != "" :
if os_name == "LINUX":
path = os.path.join("%s","WEB-INF","classes","conf:%s","WEB-INF","classes","lib","*:%s","WEB-INF",":%s","META-INF",":%s","WEB-INF","lib","*:%s","WEB-INF","classes",":%s","WEB-INF","classes","META-INF:%s/*")%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home,ews_lib)
elif os_name == "WINDOWS":
path = os.path.join("%s","WEB-INF","classes","conf;%s","WEB-INF","classes","lib","*;%s","WEB-INF",";%s","META-INF",";%s","WEB-INF","lib","*;%s","WEB-INF","classes",";%s","WEB-INF","classes","META-INF" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home)
if userRole != "" :
get_java_cmd = "%s -Dlogdir=%s -Dlogback.configurationFile=db_patch.logback.xml -cp %s org.apache.ranger.patch.cliutil.%s %s %s %s"%(JAVA_BIN,ranger_log,path,'RoleBasedUserSearchUtil',userName,password,userRole)
if userRole == "" :
get_java_cmd = "%s -Dlogdir=%s -Dlogback.configurationFile=db_patch.logback.xml -cp %s org.apache.ranger.patch.cliutil.%s %s %s "%(JAVA_BIN,ranger_log,path,'RoleBasedUserSearchUtil',userName,password)
if os_name == "LINUX":
ret = subprocess.call(shlex.split(get_java_cmd))
elif os_name == "WINDOWS":
ret = subprocess.call(get_java_cmd)
if ret == 0:
log("[I] List fetched successfully","info")
else:
log("[E] Unable to fetch user list of given role ","error")
sys.exit(1)
else:
log("[E] Input Error","error")