Крючок для автоматического входа в Liferay

Я написал хук (класс, расширяющийся от AutoLogin), который вызывается при выполнении любого запроса. В методе входа в систему моего класса у меня есть логика для аутентификации параметров запроса, отправленных с запросом.

Теперь, если аутентификация очищена, я проверяю, существует ли пользователь в liferay, используя

UserLocalServiceUtil.getUserByScreenName(companyId, username)

Теперь, если пользователь не существует в liferay, я добавляю пользователя в 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);

Теперь здесь я вижу, что пользователь создается. Однако иногда это дает следующее исключение

com.liferay.portal.kernel.dao.orm.ORMException: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update

Любая идея, почему это может происходить? Также, если создание пользователя прошло успешно, когда я вошел на портал как администратор, этот пользователь не будет указан в списке пользователей. Любая идея, почему это происходит? Я где-то ошибаюсь?


person S3b    schedule 03.01.2011    source источник


Ответы (1)


Это потому, что вы используете неправильный метод для добавления пользователя. Дополнительные сведения см. в файле editUserAction.java в источнике портлета администрирования предприятия.

person Bajji    schedule 19.01.2011