首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Konakart无缝登录Liferay

Konakart无缝登录Liferay
EN

Stack Overflow用户
提问于 2011-09-08 21:58:57
回答 2查看 1.1K关注 0票数 0

我正在尝试无缝登录Liferay上的Konakart customer portlet,在那里我安装了两个独立的Konakart实例(具有不同的.war-files和不同的数据库)。这意味着这两个人以任何方式都不知道对方)。

我所知道的是,我可以做一个钩子来捕捉Liferay登录事件。那之后呢?我应该写一个代码来访问Konakart,但是怎么做呢?

特殊之处在于,在同一个Liferay上有两个Konakart实例,我不知道如何在代码中将用户添加到其中一个实例中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-16 07:48:10

多存储多数据库的问题

您说您有多个KonaKart部署和多个数据库。

从KonaKart文档中:

"KonaKart提供多存储区功能,使您能够从单个KonaKart部署和单个数据库运行存储区。“

后来它还说:

“在多商店多数据库模式下,不支持共享客户,因此创建的用户仅有权登录到自己的商店。”

如果您希望门户用户能够访问您的所有商店,并且商店之间的客户详细信息保持同步,则不建议安装多个数据库。但是,如果您希望不同的用户组看到不同的商店,那么您应该是可以的。

将Liferay与KonaKart portlet集成的

Liferay实现了PortletRequestImpl getRemoteUser(),因此门户应该在门户和KonaKart portlet之间传递一个userid,可以使用request.getRemoteUser()在portlet中访问该用户in。

根据this thread的说法,您还应该能够从portlet内的Liferay的UserServiceUtil获取其他详细信息(包括用户电子邮件)。

KonaKart使用Apache Portal's Struts Bridge,这意味着在应用程序的Java部分几乎没有任何特定于portlet的代码(在大多数情况下,这看起来像是一个典型的Struts1.2.7应用程序)。您应该能够像往常一样使用请求和会话,并让桥来处理细节。也就是说,必须特别小心,通过使用Struts Bridge版本的Struts标记(它是门户感知的)来确保JSP在门户容器中工作。使用Struts桥还意味着相同的应用程序可以“独立”运行(即可以直接从门户容器外部访问)。

看起来Liferay和KonaKart之间的公共标识符将是客户的电子邮件地址。

查看KonaKart源代码,大多数内部处理都使用一个客户id (一个整数),并且客户id是通过一个登录方法获取的,该方法将客户的电子邮件和密码作为参数。您可以将所有用户的密码设置为只有portlet知道的某个保密值,尽管这意味着您只能通过门户访问KonaKart (因为客户不知道他们在独立模式下的密码)。

我稍微看了一下KonaKart-5.5.0.2的源代码。看起来大多数有趣的代码都位于以下两个位置之一:

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

我认为您可能需要自定义BaseAction中的loggedIn方法,以便从请求中获取Liferay用户详细信息,并使用电子邮件地址获取客户id。

您可能还希望能够以编程方式完成一定数量的客户注册。一些细节将需要由客户设置-例如Liferay通常不会保存门户用户的地址详细信息。一些最好的地方是以"SubmitAction“为后缀的类,因为这些是通常在表单提交之后发生的Struts操作,一些值得研究的类包括:

  • com.konakart.actions.BaseAction:特别是方法"loggedIn“,它检查我们是否已登录(并返回客户代码:在提交编辑客户页面后调用,并显示如何编辑客户代码:在提交客户注册页面后调用,并显示如何注册客户代码H238
  • com.konakart.apiexamples.GetCustomer:如果您有客户的电子邮件address
  • com.konakart.apiexamples.RegisterCustomer,则获取客户的详细信息: customer registration

的另一个示例

我希望这能帮到你

票数 4
EN

Stack Overflow用户

发布于 2014-05-15 22:45:14

我们最近实现了这一点。您将需要修改BaseAction java文件。你可以在http://www.surekhatech.com/blog/-/blogs/konakart-integration-with-liferay上阅读详细信息。

Gaurav Shah

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7349239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档