2

我是 Liferay 门户的新手。恐怕,提出的问题可能很简单,但我不知道。请说清楚。

我们正在尝试在 Tomcat 上使用 Liferay 构建一个门户。这个 Portal 应该由 Netegrity SiteMinder 进行身份验证,我们有我们的内部授权机制,它建立在 tomcat 安全性之上。我对下面列出的两个方面有疑问

  1. 关于在 Liferay 中启用 Siteminder 的问题 当在 Liferay 中启用了 siteminder 时,我们是否仍然需要在 liferay 门户中配置用户以使经过站点管理员身​​份验证的用户进入门户页面。

  2. 授权 - 我的目标是避免在 Liferay 中配置用户和角色及其关联。这是因为我们要构建的门户应该依赖于已经到位的tomcat安全定制框架。

我部署了一个 portlet,它有一组可用的链接,并且这些链接应该基于用户权限可用。所以我在 tomcat-users.xml 中配置了用户和角色集,还在 liferay-portlet.xml、portlet.xml、web.xml 中定义了角色映射,并部署了 portlet,还更改了 liferay.xml 中的领域配置如下

appName="PortalRealm" userClassNames="com.liferay.portal.security.jaas.PortalPrincipal"

roleClassNames="com.liferay.portal.security.jaas.PortalRole"

debug="99" useContextClassLoader="false"/>

我使用用户登录到 Liferay 门户(在 liferay 和 tomcat-users.xml 中进行了配置,并在页面上添加了 Portlet 并看到链接未显示为 request.isUserInRole("Role x") 返回 false。当我尝试配置相同的角色并将其关联到用户,我看到链接工作。但没有看到预期的行为。

请帮助我。感谢快速响应。

谢谢卡拉亚拉桑

4

1 回答 1

0

1) 通常用户是从外部认证导入的。Liferay 的工具。我的经验基于 LDAP (OpenDJ) 身份验证。集成到 Liferay。如果用户按组进行组织,则还可以导入这些组并将导入的用户与这些组相关联。最后一步是为这些组提供所需的权限。因此,您最终会得到具有适当角色的普通 Liferay 用户,可以选择属于适当的组——所有这些都来自您的外部 Tomcat 配置。

2)我建议将您在Tomcat中已经拥有的用户和角色导入Liferay(是的,可以通过编写一些导入当前授权用户及其角色的代码在授权期间自动完成)。这将使您可以灵活地使用 Liferay 内置机制微调权限,并减少对其覆盖的干扰。您还有 AdvancedSecurityChecker 类,您可以覆盖它来执行任何自定义权限处理,但不太推荐。

最后请记住对未来 Liferay 版本的升级。您覆盖和自定义的 Liferay 功能越多,升级就越困难。

于 2014-04-04T13:05:24.263 回答