我正在考虑使用Liferay的权限系统在外部Java应用程序(而不是portlet)中实现访问安全性。 Liferay具有强大的功能,可用于管理用户,组,角色,权限和资源。如果我可以利用这些而不是在我们的外部应用程序中重新发明轮子,那将是很棒的。
Liferay和我们的外部应用程序配置为使用相同的CAS和LDAP进行身份验证,因此它们共享相同的用户。
到目前为止,我已成功使用Liferay的JSON-WS API来管理用户的角色。这很好,但我需要将它带到下一步。
我可以使用JSON-WS API定义和管理Liferay权限和资源吗?
我看到用于检查用户是否具有某些权限的API方法(即has-user-permission),但我没有看到创建和分配权限和资源的方法。
不可否认,我需要更好地了解Liferay中如何定义权限和操作。据我所知,权限和操作是在与特定portlet相关联的XML文件中定义的。
在我们的例子中,外部应用程序将没有任何portlet,那么我将如何定义自定义权限和操作?(可能创建一个仅用于定义操作和资源的自定义portlet?) 。我仍然需要一种以编程方式定义资源的方法,因为需要为外部应用程序中的某些域对象创建资源。
答案 0 :(得分:2)
我知道这已经过时但我想回答这个问题以备将来参考。
您有一个新颖的想法,但我还不太明白,您打算如何检查用户是否在您的应用程序中具有特定权限。您是否计划在每个请求中查询Liferay JSON-WS API以验证您是否拥有权限?如果你在服务器端这样做,那么你可能会受到性能损失,但否则这个想法似乎没问题。但是不要在客户端(通过javascript在浏览器中)执行此操作 - 用户可以操纵请求或响应以获取对敏感信息的访问权。
据我所知,您无法使用JSON-WS API定义权限和资源,但它们存储在数据库中,您可以通过Service Builder创建自己的JSON-WS服务,以便为您的应用程序公开这些功能。
就定义权限而言 - 由于您无论如何都必须构建自己的服务来管理事物,因此您可以使用适当的基于XML的配置来定义权限并将其与服务一起部署。
我对你最终得到的解决方案有点好奇,因为我认为你已经完成了这个项目。