Liferay身份验证和授权(Siteminder和自定义Tomcat授权)

时间:2010-10-07 20:14:42

标签: tomcat authorization liferay siteminder

我是liferay门户网站的新手。我担心,提出的问题可能很简单,但我不知道。请澄清。

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

  1. 有关在Liferay中启用Siteminder的问题 在Liferay中启用siteminder时,我们是否仍需要在liferay门户中配置用户,让siteminder经过身份验证的用户进入门户页面。

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

  3. 我部署了一个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 Portal(在liferay和tomcat-users.xml中配置并在页面上添加了Portlet,并且看到链接未显示为request.isUserInRole(“Role x”)返回false当我尝试配置相同的角色并将其与用户关联时,我看到链接正常工作。但是没有看到预期的行为。

    请帮我解决这个问题。欣赏快速回复。

    由于 Kalaiarasan

1 个答案:

答案 0 :(得分:0)

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

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

最后请记住未来Liferay版本的升级。您重写和更自定义的Liferay功能越多,升级就越多。