2013-11-13 3 views
0

Я новичок в Liferay, и я создаю крючок для аутентификации с использованием столбца expando вместо адреса электронной почты. Мой класс аутентификации работает отлично, но одна проблема все еще остается:Пользовательский класс входа в класс в Liferay не вызывается

После успешной аутентификации, я должен перенаправить страницу государственной или частной страницы пользователя (любой из theese достаточно для меня) я последовал общий инструкции для этого на любом форуме в Интернете:

  1. Создайте класс, который расширяет com.liferay.portal.kernel.events.Action и выполняет логику там. В моем случае, мой класс называется CustomPostLoginAction
  2. Изменить portal.properties добавление записей,

    login.events.post=com.liferay.sample.hook.action.CustomPostLoginAction auth.forward.by.last.path=true
    default.landing.page.path=/web/guest/home

  3. повторного развёртывания и "вуаля"

После перезагрузки мой веб-сервер, все в порядке, но когда я запускаю свой крючок с помощью любого браузера, как только я получу успешную аутентификацию , он по-прежнему показывает мне сообщения об ошибках входа по умолчанию. Когда я проверяю свою консоль, я обнаружил, что мой класс действий никогда не вызывается и никаких специальных действий не выполняется после моего класса проверки подлинности. Таким образом, у меня есть следующие вопросы:

  • Где я нашел пример класса, который будет использоваться в качестве значения свойства «auth.pipeline.post», если это необходимо?

  • О методе authenticateByEmailAddress на моем классе аутентификации, последний аргумент является java.util.Map, содержащий параметры, такие как «doActionAfterLogin», «переориентировать», «structsAction» и т.д. Могу ли я получить что-то, если я присвоить значения этих ключей на том, что карта? Если да, где я могу найти пример допустимых значений для назначения каждому из них?

  • Нужно ли мне что-то менять в моей пользовательской странице входа? (он работает, но все же я должен спросить об этом)

  • Нужно ли работать с классом DefaultLandingPageAction? Если да, как я могу это сделать? Потому что у меня есть только байт-коды портала (.class)

  • И самое главное: что я делаю неправильно?

Для записи:

Я использую Liferay 6.1 сверток с Tomcat 7 и SDK в комплекте с базой данных Liferay по умолчанию. Если кто-либо из вас должен посмотреть любой из моих исходных кодов и/или файлов свойств, просто дайте мне знать, и я опубликую их.

Заранее благодарю всех вас.

+0

Я попытался модифицировать 'Map ', используемый в качестве последнего аргумента метода authenticateByEmailAddress моего класса аутентификации, и выяснил, что это бесполезно, поэтому на второй вопрос ответили. – mrcoar

+0

Кроме того, у меня есть дополнительная проблема: на некоторых форумах мне сказали, что в ключе '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

+0

(после последнего комментария) Но 'LoginPostAction' - это определенный Liferay класс, и я могу создать любой экземпляр' LoginPostAction' для любого из моих классов. Что я могу сделать, чтобы решить эту проблему? – mrcoar

ответ

0

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

Вы или кто-то изменял portal.properties или вы создали новый portal.properties внутри вашего крючка?

Как только вы продлили com.liferay.portal.kernel.events.Action, вы сделали переопределитьrun метод?

Смежные вопросы