67 def authenticate(self, configurationAttributes, requestParameters, step):
68 print "Wikid. Authentication. Checking client" 70 if (
not self.wc.isConnected()):
71 print "Wikid. Authentication. Wikid client state is invalid" 74 authenticationService = CdiUtil.bean(AuthenticationService)
76 identity = CdiUtil.bean(Identity)
77 credentials = identity.getCredentials()
79 is_wikid_registration =
False 80 sessionAttributes = identity.getSessionId().getSessionAttributes()
81 if (sessionAttributes !=
None)
and sessionAttributes.containsKey(
"wikid_registration"):
82 is_wikid_registration = java.lang.Boolean.valueOf(sessionAttributes.get(
"wikid_registration"))
84 wikid_server_code = configurationAttributes.get(
"wikid_server_code").getValue2()
86 user_name = credentials.getUsername()
89 print "Wikid. Authenticate for step 1" 91 user_password = credentials.getPassword()
94 if (StringHelper.isNotEmptyString(user_name)
and StringHelper.isNotEmptyString(user_password)):
95 userService = CdiUtil.bean(UserService)
96 logged_in = authenticationService.authenticate(user_name, user_password)
101 print "Wikid. Authenticate for step 1. Attempting to find wikid_user: " + user_name
102 wc_user = self.wc.findUser(wikid_server_code, user_name)
104 if (wc_user ==
None):
105 print "Wikid. Authenticate for step 1. There is no associated devices for user: " + user_name
106 print "Wikid. Authenticate for step 1. Setting count steps to 3" 107 identity.setWorkingParameter(
"wikid_count_login_steps", 3)
108 identity.setWorkingParameter(
"wikid_registration",
True)
110 identity.setWorkingParameter(
"wikid_count_login_steps", 2)
113 elif (is_wikid_registration):
114 print "Wikid. Authenticate for step wikid_register_device" 116 userService = CdiUtil.bean(UserService)
118 wikid_regcode_array = requestParameters.get(
"regcode")
119 if ArrayHelper.isEmpty(wikid_regcode_array):
120 print "Wikid. Authenticate for step wikid_register_device. Regcode is empty" 123 wikid_regcode = wikid_regcode_array[0]
125 print "Wikid. Authenticate for step wikid_register_device. User: " + user_name +
", regcode: " + wikid_regcode
127 register_result = self.wc.registerUsername(user_name, wikid_regcode, wikid_server_code)
129 is_valid = register_result == 0
131 print "Wikid. Authenticate for step wikid_register_device. User: " + user_name +
" token registered successfully" 134 find_user_by_uid = userService.addUserAttribute(user_name,
"oxExternalUid",
"wikid:" + wikid_regcode)
135 if (find_user_by_uid ==
None):
136 print "Wikid. Authenticate for step wikid_register_device. Failed to update user: " + user_name
139 identity.setWorkingParameter(
"wikid_registration",
False)
141 print "Wikid. Authenticate for step wikid_register_device. Failed to register user: " + user_name +
" token:" + wikid_regcode +
". Registration result:", register_result
144 elif (
not is_wikid_registration):
145 print "Wikid. Authenticate for step wikid_check_passcode" 147 wikid_passcode_array = requestParameters.get(
"passcode")
148 if ArrayHelper.isEmpty(wikid_passcode_array):
149 print "Wikid. Authenticate for step wikid_check_passcode. Passcode is empty" 152 wikid_passcode = wikid_passcode_array[0]
154 print "Wikid. Authenticate for step wikid_check_passcode. wikid_user: " + user_name
156 is_valid = self.wc.CheckCredentials(user_name, wikid_passcode, wikid_server_code)
159 print "Wikid. Authenticate for step wikid_check_passcode. wikid_user: " + user_name +
" authenticated successfully" 161 print "Wikid. Authenticate for step wikid_check_passcode. Failed to authenticate. wikid_user: " + user_name