144 def prepareForStep(self, configurationAttributes, requestParameters, step):
145 identity = CdiUtil.bean(Identity)
150 print "U2F. Prepare for step 2" 152 session_id = CdiUtil.bean(SessionIdService).getSessionIdFromCookie()
153 if StringHelper.isEmpty(session_id):
154 print "U2F. Prepare for step 2. Failed to determine session_id" 157 authenticationService = CdiUtil.bean(AuthenticationService)
158 user = authenticationService.getAuthenticatedUser()
160 print "U2F. Prepare for step 2. Failed to determine user name" 163 u2f_application_id = configurationAttributes.get(
"u2f_application_id").getValue2()
166 deviceRegistrationService = CdiUtil.bean(DeviceRegistrationService)
168 userInum = user.getAttribute(
"inum")
170 registrationRequest =
None 171 authenticationRequest =
None 173 deviceRegistrations = deviceRegistrationService.findUserDeviceRegistrations(userInum, u2f_application_id)
174 if (deviceRegistrations.size() > 0):
175 print "U2F. Prepare for step 2. Call FIDO U2F in order to start authentication workflow" 178 authenticationRequestService = FidoU2fClientFactory.instance().createAuthenticationRequestService(self.metaDataConfiguration)
179 authenticationRequest = authenticationRequestService.startAuthentication(user.getUserId(),
None, u2f_application_id, session_id)
180 except ClientResponseFailure, ex:
181 if (ex.getResponse().getResponseStatus() != Response.Status.NOT_FOUND):
182 print "U2F. Prepare for step 2. Failed to start authentication workflow. Exception:", sys.exc_info()[1]
185 print "U2F. Prepare for step 2. Call FIDO U2F in order to start registration workflow" 186 registrationRequestService = FidoU2fClientFactory.instance().createRegistrationRequestService(self.metaDataConfiguration)
187 registrationRequest = registrationRequestService.startRegistration(user.getUserId(), u2f_application_id, session_id)
189 identity.setWorkingParameter(
"fido_u2f_authentication_request", ServerUtil.asJson(authenticationRequest))
190 identity.setWorkingParameter(
"fido_u2f_registration_request", ServerUtil.asJson(registrationRequest))
194 print "U2F. Prepare for step 3"