Я новичок в Liferay, и я создаю крючок для аутентификации с использованием столбца expando вместо адреса электронной почты. Мой класс аутентификации работает отлично, но одна проблема все еще остается:Пользовательский класс входа в класс в Liferay не вызывается
После успешной аутентификации, я должен перенаправить страницу государственной или частной страницы пользователя (любой из theese достаточно для меня) я последовал общий инструкции для этого на любом форуме в Интернете:
- Создайте класс, который расширяет com.liferay.portal.kernel.events.Action и выполняет логику там. В моем случае, мой класс называется CustomPostLoginAction
Изменить portal.properties добавление записей,
login.events.post=com.liferay.sample.hook.action.CustomPostLoginAction
auth.forward.by.last.path=true
default.landing.page.path=/web/guest/home
повторного развёртывания и "вуаля"
После перезагрузки мой веб-сервер, все в порядке, но когда я запускаю свой крючок с помощью любого браузера, как только я получу успешную аутентификацию , он по-прежнему показывает мне сообщения об ошибках входа по умолчанию. Когда я проверяю свою консоль, я обнаружил, что мой класс действий никогда не вызывается и никаких специальных действий не выполняется после моего класса проверки подлинности. Таким образом, у меня есть следующие вопросы:
Где я нашел пример класса, который будет использоваться в качестве значения свойства «auth.pipeline.post», если это необходимо?
О методе
authenticateByEmailAddress
на моем классе аутентификации, последний аргумент являетсяjava.util.Map
, содержащий параметры, такие как «doActionAfterLogin», «переориентировать», «structsAction» и т.д. Могу ли я получить что-то, если я присвоить значения этих ключей на том, что карта? Если да, где я могу найти пример допустимых значений для назначения каждому из них?Нужно ли мне что-то менять в моей пользовательской странице входа? (он работает, но все же я должен спросить об этом)
Нужно ли работать с классом
DefaultLandingPageAction
? Если да, как я могу это сделать? Потому что у меня есть только байт-коды портала (.class)И самое главное: что я делаю неправильно?
Для записи:
Я использую Liferay 6.1 сверток с Tomcat 7 и SDK в комплекте с базой данных Liferay по умолчанию. Если кто-либо из вас должен посмотреть любой из моих исходных кодов и/или файлов свойств, просто дайте мне знать, и я опубликую их.
Заранее благодарю всех вас.
Я попытался модифицировать 'Map', используемый в качестве последнего аргумента метода authenticateByEmailAddress моего класса аутентификации, и выяснил, что это бесполезно, поэтому на второй вопрос ответили. –
mrcoar
Кроме того, у меня есть дополнительная проблема: на некоторых форумах мне сказали, что в ключе 'login.events.post' в файле' portal.properties' я должен добавить класс 'com.liferay.portal.events.LoginPostAction' (и, очевидно, поместите запятую между этим классом и классом входа в мой пост). Если я это сделаю, когда я перераспределяю свой крючок, Tomcat выдает 'com.liferay.portal.kernel.deploy.hot.HotDeployException: Ошибка регистрации hook' (...)' Caused by: java.lang.ClassNotFoundException: com. liferay.portal.events.LoginPostAction'. (продолжение по следующему комментарию) – mrcoar
(после последнего комментария) Но 'LoginPostAction' - это определенный Liferay класс, и я могу создать любой экземпляр' LoginPostAction' для любого из моих классов. Что я могу сделать, чтобы решить эту проблему? – mrcoar