def authenticate(self, configurationAttributes, requestParameters, step): userService = CdiUtil.bean(UserService) authenticationService = CdiUtil.bean(AuthenticationService) identity = CdiUtil.bean(Identity) credentials = identity.getCredentials() user_name = credentials.getUsername() iw_otp = requestParameters.get("loginForm:otp") if ArrayHelper.isNotEmpty(iw_otp) and StringHelper.equalsIgnoreCase( "true", iw_otp[0]) and step == 2: identity.setWorkingParameter("iw_count_login_steps", 3) return True elif StringHelper.isEmptyString(user_name) and step == 1: print "empty user_name in step1 indicates browser token notfound" identity.setWorkingParameter("iw_count_login_steps", 2) return True else: response_check = False user_exists_in_gluu = authenticationService.authenticate(user_name) identity.setWorkingParameter("iw_count_login_steps", step) if (step == 1 or step == 3): print "if (step == 1 or step == 3):" password = credentials.getPassword() if StringHelper.isEmpty(password): print "InWebo. Authenticate for step 2. otp token is empty" return False #password is the otp token response_check = self.validateInweboToken( self.api_uri, self.service_id, user_name, password, step) elif (step == 2): print "elif (step == 2):" session = CdiUtil.bean(SessionIdService).getSessionId() if session == None: print "InWebo. Authenticate for step 2. session_id is not exists" return False response_check = self.checkStatus(self.api_uri, self.service_id, user_name, session.getId(), self.push_withoutpin) if self.push_fail is not None: self.setErrorMessage(self.push_fail) identity.setWorkingParameter("iw_count_login_steps", 3) return response_check and user_exists_in_gluu
def getClientConfiguration(self, configurationAttributes, requestParameters): # Get client configuration if configurationAttributes.containsKey( "saml_client_configuration_attribute"): saml_client_configuration_attribute = configurationAttributes.get( "saml_client_configuration_attribute").getValue2() print "Asimba. GetClientConfiguration. Using client attribute: '%s'" % saml_client_configuration_attribute if requestParameters == None: return None client_id = None client_id_array = requestParameters.get("client_id") if ArrayHelper.isNotEmpty( client_id_array) and StringHelper.isNotEmptyString( client_id_array[0]): client_id = client_id_array[0] if client_id == None: identity = CdiUtil.bean(Identity) if identity.getSessionId() != None: client_id = identity.getSessionId().getSessionAttributes( ).get("client_id") if client_id == None: print "Asimba. GetClientConfiguration. client_id is empty" return None clientService = CdiUtil.bean(ClientService) client = clientService.getClient(client_id) if client == None: print "Asimba. GetClientConfiguration. Failed to find client '%s' in local LDAP" % client_id return None saml_client_configuration = clientService.getCustomAttribute( client, saml_client_configuration_attribute) if (saml_client_configuration == None) or StringHelper.isEmpty( saml_client_configuration.getValue()): print "Asimba. GetClientConfiguration. Client '%s' attribute '%s' is empty" % ( client_id, saml_client_configuration_attribute) else: print "Asimba. GetClientConfiguration. Client '%s' attribute '%s' is '%s'" % ( client_id, saml_client_configuration_attribute, saml_client_configuration) return saml_client_configuration return None
def getClientConfiguration(self, configurationAttributes, requestParameters): # Get client configuration if (configurationAttributes.containsKey("gplus_client_configuration_attribute")): clientConfigurationAttribute = configurationAttributes.get("gplus_client_configuration_attribute").getValue2() print "Google+ GetClientConfiguration. Using client attribute: '%s'" % clientConfigurationAttribute if (requestParameters == None): return None clientId = None # Attempt to determine client_id from request clientIdArray = requestParameters.get("client_id") if (ArrayHelper.isNotEmpty(clientIdArray) and StringHelper.isNotEmptyString(clientIdArray[0])): clientId = clientIdArray[0] # Attempt to determine client_id from event context if (clientId == None): identity = CdiUtil.bean(Identity) if (identity.isSetWorkingParameter("sessionAttributes")): clientId = identity.getSessionId().getSessionAttributes().get("client_id") if (clientId == None): print "Google+ GetClientConfiguration. client_id is empty" return None clientService = CdiUtil.bean(ClientService) client = clientService.getClient(clientId) if (client == None): print "Google+ GetClientConfiguration. Failed to find client '%s' in local LDAP" % clientId return None clientConfiguration = clientService.getCustomAttribute(client, clientConfigurationAttribute) if ((clientConfiguration == None) or StringHelper.isEmpty(clientConfiguration.getValue())): print "Google+ GetClientConfiguration. Client '%s' attribute '%s' is empty" % (clientId, clientConfigurationAttribute) else: print "Google+ GetClientConfiguration. Client '%s' attribute '%s' is '%s'" % (clientId, clientConfigurationAttribute, clientConfiguration) return clientConfiguration return None