使用弹簧安全保护liferay portlet

时间:2013-05-06 15:04:56

标签: spring-mvc spring-security liferay portlet

我目前正在使用liferay portlet。渲染层(在jsp页面中)使用Spring安全性。但是,它并不安全,因为我的调度控制器和服务没有任何安全/授权检查。

在我的应用程序中,Spring-MVC控制器接收请求,并传递给服务层。 Service Layer构建结果并将其传递给JSP页面。在jsp页面中,我们使用spring-security taglib进行安全授权。

我想知道以下内容:

  1. 有关实施portlet授权的最佳实践。
  2. 哪个是在Dispatch层或Service层上实现安全性的更好选择?
  3. 如何实现调度层或服务层的安全性?
  4. 请考虑我的应用程序在用例基础上有安全性。

    谢谢!

1 个答案:

答案 0 :(得分:1)

我最喜欢的答案在这里匹配:“这取决于”。

这取决于它:

Liferay默认为* LocalService没有任何权限检查 - 例如如果您有权访问API,那么您可以随心所欲。但是,远程服务应该在将实际执行服务委托给本地服务之前检查权限。

如果您想使用Liferay的permissionChecker(可随时使用且可运行时配置),您应该使用非本地服务方法。我倾向于推荐这个,因为你可以使用Liferay's permissioning system - 而且你已经拥有Liferay管理的用户身份,角色,会员资格等等。创建自定义角色,授予自定义权限,并且您可以在运行时配置所有内容。

其次,虽然您肯定想要检查后端服务中的权限,但您可能希望在UI层上再次执行此操作:如果不允许用户操作某个对象,则不希望显示提示他们可以更改它的按钮,只是为了获得“拒绝许可”的回复。

话虽如此,我从未将Life spring(尤其是taglibs)与Liferay的许可系统联系起来。