如何防止访客角色访问超出Liferay登录?

时间:2014-10-01 21:20:12

标签: security liferay liferay-6

我们计划使用Liferay 6.2实施公司内部门户。由于许多团队成员不在公司的网络中,因此必须允许从互联网访问。

现在我发现 Guest 角色存在一个大问题,因为它1)可以在不登录的情况下访问Guest-viewable内容,2)这是例如上传文档时的默认选择。

我真正需要的是,只有登录页面通常是可见的,但所有其他网站和内容仅对登录用户可见,而无需明确地为每个项目正确分配权限。

所以问题是,我可以阻止访客角色访问登录页面之外的任何内容,所以说要从门户网站内的所有内容中删除它吗?


更新

建议仅使用私人页面。虽然这可能有用,但据我所知,它意味着每个用户都必须是该站点的成员。但是,不再可能有不同用户参与不同网站的网站结构,并且仍然能够查看公共信息(对所有登录用户来说都是公开的) - 或者我错了?


更新2:

我同意一个解决方案,其中必须通过钩子或通过更大的更改来阻止以编程方式分配guest角色。然而,我喜欢仔细检查管理并考虑使用API​​的定期数据库作业或程序,该API检查与钩子附近的来宾角色的关系或用户的错误权限设置并再次删除它们。怎么可能这样做?

3 个答案:

答案 0 :(得分:2)

当通过私人页面上传文档时,权限实际默认为可供“访客”访问。如果您没有任何公共页面,这可以保证最简单。

此外,您可以访问API并在文档上传后更改默认权限(无需覆盖默认的核心Liferay功能):仅write a service hook覆盖上传文档的版本设置文档上传后您想要的权限。这将捕获所有其他上传尝试,例如通过服务,Webdav等。

编辑(评论后):添加了指向开发指南的链接。实际使用API​​有点太多,无法动态更新此答案。您可能希望查看sevencogspart 2)等旧示例以熟悉实际的API,但DevGuide将首先介绍如何编写插件。

答案 1 :(得分:1)

您仍然可以使用公共页面等,并在登录页面及其资源的每个元素上禁用访客VIEW权限。

现在,正如您已经注意到的那样,默认情况下,每当创建任何内容时,Guest都会获得VIEW权限,这是一个重大问题。

我建议简单地覆盖Liferay的核心portlet中的<guest-defaults>值&#39;资源权限文件(ROOT/WEB-INF/classes/resource-actions/中的文件)以删除这些默认值。如果您不清楚如何操作,请参阅此论坛主题:https://www.liferay.com/community/forums/-/message_boards/message/486154

答案 2 :(得分:0)

您需要做的就是删除所有公共页面。您创建的每个页面都应该是私有的。不要担心登录页面,重置密码和自行注册(如果允许),默认情况下它们是公共的。 希望这会有所帮助。

相关问题