Konakart бесшовные войти на Liferay - PullRequest
       19

Konakart бесшовные войти на Liferay

0 голосов
/ 08 сентября 2011

Я пытаюсь сделать беспрепятственный вход в систему клиентского портлета Konakart на Liferay, где у меня установлены два отдельных экземпляра Konakart (с разными .war -файлами и разными базами данных. Это означает, что эти двое не знают друг о друге ни в одном путь).

Что я знаю, так это то, что я, вероятно, мог бы создать ловушку для регистрации события входа в Liferay. Что после этого? Я должен написать код для доступа к Konakart, но как это сделать?

Особое замечание заключается в том, что на одном и том же Liferay есть два экземпляра Konakart, и я не знаю, как сделать это в коде, чтобы добавить пользователя к одному из них.

Ответы [ 2 ]

4 голосов
/ 16 сентября 2011

Проблемы с несколькими базами данных из нескольких магазинов

Вы говорите, что у вас есть несколько развертываний KonaKart и несколько баз данных.

Из документации KonaKart:

«KonaKart предоставляет функциональность нескольких магазинов, чтобы вы могли запускать свои магазины из одного развертывания KonaKart и единой базы данных».

позже в нем также говорится:

"В режиме нескольких магазинов нескольких баз данных поддержка общих клиентов не поддерживается, поэтому созданным пользователям разрешается входить только в свои собственные магазины."

Если вы хотите, чтобы пользователи портала быливозможность доступа ко всем вашим магазинам и сведениям о клиентах, синхронизированным между магазинами, поэтому не рекомендуется устанавливать несколько баз данных.Однако, если вы хотите, чтобы разные группы пользователей видели разные магазины, у вас все будет в порядке.


Интеграция Liferay с портлетом KonaKart

Liferay реализует PortletRequestImpl getRemoteUser () , поэтому портал должен передавать идентификатор пользователя между порталом и портлетом KonaKart, который будет доступен в портлете с использованием request.getRemoteUser () .

Согласно эта ветка вы также сможете получать другие сведения (включая электронная почта пользователя ) из UserServiceUtil Liferay из своего портлета.

KonaKartиспользует Apache Portal Struts Bridge , и это означает, что в коде, специфичном для портлетов, в Java-части приложения практически ничего нет (по большей части это будет типичное приложение Struts 1.2.7),Вы должны иметь возможность использовать запросы и сеансы, как обычно, и позволить мосту беспокоиться о деталях.При этом особое внимание следует уделить тому, чтобы JSP работали в контейнере портала, используя версию тегов Struts Bridge (которые поддерживаются порталом).Использование моста Struts также означает, что одно и то же приложение может быть запущено «автономно» (то есть к нему можно получить доступ непосредственно за пределами контейнера портала).

Похоже, что общий идентификатор между Liferay и KonaKart станет клиентомадрес электронной почты.

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

Я немного посмотрел на исходный код KonaKart-5.5.0.2.Похоже, что большинство интересного кода находится в одном из двух мест:

  • ~ konakart \ custom \ appn \ src \ com \ konakart \ actions

  • ~ konakart \ java_api_examples \ src \ com \ konakart \ apiexamples

Я думаю, вам, вероятно, придется настроить loggedIn метод в BaseAction , чтобы получить ваши данные пользователя Liferay из запроса и использовать адрес электронной почты для получения идентификатора клиента.

Вы также можете захотеть выполнить определенное количество регистраций клиентов программным путем.Некоторые детали должны быть установлены клиентом - например, Liferay обычно не хранит адресные данные пользователей портала.Некоторые из лучших мест для поиска - это классы с суффиксом « SubmitAction », поскольку это действия Struts, которые обычно выполняются после отправки формы, и некоторые классы, которые стоит изучить, включают:

  • com.konakart.actions.BaseAction : в частности, метод "loggedIn", который проверяет, вошли ли мы в систему (и возвращает ли идентификатор клиента).

  • com.konakart.actions.EditCustomerSubmitAction : вызывается после отправки страницы редактирования клиента и показывает, как редактировать информацию о клиенте.

  • com.konakart.actions.CustomerRegistrationSubmitAction : вызывается после отправки страницы регистрации клиента и показывает, как зарегистрировать информацию о клиенте.

  • com.konakart.actions.ChangePasswordSubmitAction

  • com.konakart.apiexamples.GetCustomer : получить данные клиента KonaKart, если у вас есть их адрес электронной почты

  • com.konakart.apiexamples.RegisterCustomer : еще один пример регистрации клиента

Надеюсь, это поможет

0 голосов
/ 15 мая 2014

Мы недавно это реализовали. Вам нужно будет изменить Java-файл BaseAction. Вы можете прочитать подробности на http://www.surekhatech.com/blog/-/blogs/konakart-integration-with-liferay.

Гаурав Шах

...