J'ai écrit un crochet (classe allant de AutoLogin
) qui est appelé quand une demande est faite. Dans la méthode de connexion de ma classe, j'ai une logique pour authentifier les paramètres de requête envoyés avec la requête.Crochet de connexion automatique dans Liferay
maintenant Si l'authentification est effacée, je vérifie si l'utilisateur existe dans Liferay en utilisant
UserLocalServiceUtil.getUserByScreenName(companyId, username)
Maintenant, si l'utilisateur n'existe pas dans Liferay, j'ajouter un utilisateur à la Liferay
user = UserLocalServiceUtil.createUser(contactId);
user.setFirstName(fname);
user.setLastName(lname);
user.setActive(true);
user.setAgreedToTermsOfUse(true);
user.setCreateDate(new Date());
user.setScreenName(username);
user.setCompanyId(companyId);
user.setPassword("test");
user = UserLocalServiceUtil.addUser(user);
Maintenant, je vois que l'utilisateur est créé. Cependant parfois il donne l'exception suivante
com.liferay.portal.kernel.dao.orm.ORMException: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
Toute idée pourquoi cela pourrait être INTERVENUES? En outre, si la création de l'utilisateur aboutit lorsque je me connecte au portail en tant qu'administrateur, cet utilisateur ne figure pas dans la liste des utilisateurs. Une idée de pourquoi cela se passe-t-il? Est-ce que je vais mal quelque part?