3

我正在考虑使用 Liferay 的权限系统在外部 Java 应用程序(而不是 portlet)中实现访问安全性。Liferay 具有用于管理用户、组、角色、权限和资源的强大功能。如果我可以利用这些而不是在我们的外部应用程序中重新发明轮子,那就太好了。

Liferay 和我们的外部应用程序配置为使用相同的 CAS 和 LDAP 进行身份验证,因此它们共享相同的用户。

到目前为止,我已经成功地使用 Liferay 的JSON-WS API来管理用户的角色。这很棒,但我需要把它带到下一步。

我可以使用 JSON-WS API 定义和管理 Liferay 权限和资源吗?

我看到了用于检查用户是否具有某些权限(即 has-user-permission)的 API 方法,但我没有看到用于创建和分配权限和资源的方法。

诚然,我需要更好地理解 Liferay 中权限和操作是如何定义的。据我了解,权限和操作是在与特定 portlet 相关联的 XML 文件中定义的。

在我们的例子中,外部应用程序没有任何 portlet,那么我将如何定义自定义权限和操作?(也许创建一个仅用于定义操作和资源的自定义 portlet?)。我仍然需要一种以编程方式定义资源的方法,因为需要为我们的外部应用程序中的某些域对象创建资源。

4

1 回答 1

2

我知道这很旧,但无论如何我还是想回答这个问题以供将来参考。

您在这里有一个新颖的想法,但我还不太明白您打算如何检查用户是否在您的应用程序中具有特定权限。您是否计划在每个请求上查询 Liferay JSON-WS API 以验证您是否有权限?如果您在服务器端执行此操作,那么您可能会受到性能损失,但否则这个想法似乎还可以。但不要在客户端(通过 javascript 在浏览器中)执行此操作 - 用户可以操纵请求或响应以获取对敏感信息的访问权限。

据我所知,您无法使用 JSON-WS API 定义权限和资源,但它们存储在数据库中,您可以通过 Service Builder 创建自己的 JSON-WS 服务,为您的应用程序公开这些功能。

就定义权限而言 - 由于无论如何您都必须构建自己的服务来管理事物,那么您不妨使用适当的基于 XML 的配置来定义您的权限,并将这些配置与服务一起部署。

我对你最终得到的解决方案有点好奇,因为我假设你已经完成了这个项目。

于 2014-10-29T10:50:56.600 回答