101 def authenticate(self, configurationAttributes, requestParameters, step):
102 print "Casa. authenticate %s" % str(step)
104 userService = CdiUtil.bean(UserService)
105 authenticationService = CdiUtil.bean(AuthenticationService)
106 identity = CdiUtil.bean(Identity)
109 credentials = identity.getCredentials()
110 user_name = credentials.getUsername()
111 user_password = credentials.getPassword()
113 if StringHelper.isNotEmptyString(user_name)
and StringHelper.isNotEmptyString(user_password):
115 foundUser = userService.getUserByAttribute(self.uid_attr, user_name)
117 if foundUser ==
None:
118 print "Casa. authenticate for step 1. Unknown username" 120 acr = foundUser.getAttribute(
"oxPreferredMethod")
124 logged_in = authenticationService.authenticate(user_name, user_password)
125 elif acr
in self.authenticators:
126 module = self.authenticators[acr]
127 logged_in = module.authenticate(module.configAttrs, requestParameters, step)
130 foundUser = authenticationService.getAuthenticatedUser()
132 if foundUser ==
None:
133 print "Casa. authenticate for step 1. Cannot retrieve logged user" 136 identity.setWorkingParameter(
"skip2FA",
True)
139 skip2FA = self.determineSkip2FA(userService, identity, foundUser, ServerUtil.getFirstValue(requestParameters,
"loginForm:platform"))
140 identity.setWorkingParameter(
"skip2FA", skip2FA)
141 identity.setWorkingParameter(
"ACR", acr)
146 print "Casa. authenticate for step 1 was not successful" 150 user = authenticationService.getAuthenticatedUser()
152 print "Casa. authenticate for step 2. Cannot retrieve logged user" 156 alter = ServerUtil.getFirstValue(requestParameters,
"alternativeMethod")
159 self.simulateFirstStep(requestParameters, alter)
162 session_attributes = identity.getSessionId().getSessionAttributes()
163 acr = session_attributes.get(
"ACR")
165 identity.setWorkingParameter(
"methods", self.getAvailMethodsUser(user, acr))
168 if acr
in self.authenticators:
169 module = self.authenticators[acr]
170 success = module.authenticate(module.configAttrs, requestParameters, step)
174 print "Casa. authenticate. 2FA authentication was successful" 175 tdi = session_attributes.get(
"trustedDevicesInfo")
177 print "Casa. authenticate. List of user's trusted devices was not updated" 179 user.setAttribute(
"oxTrustedDevicesInfo", tdi)
180 userService.updateUser(user)
182 print "Casa. authenticate. 2FA authentication failed"