我目前正在使用liferay portlet。渲染层(在jsp页面中)使用Spring安全性。但是,它并不安全,因为我的调度控制器和服务没有任何安全/授权检查。
在我的应用程序中,Spring-MVC控制器接收请求,并传递给服务层。 Service Layer构建结果并将其传递给JSP页面。在jsp页面中,我们使用spring-security taglib进行安全授权。
我想知道以下内容:
请考虑我的应用程序在用例基础上有安全性。
谢谢!
答案 0 :(得分:1)
我最喜欢的答案在这里匹配:“这取决于”。
这取决于它:
Liferay默认为* LocalService没有任何权限检查 - 例如如果您有权访问API,那么您可以随心所欲。但是,远程服务应该在将实际执行服务委托给本地服务之前检查权限。
如果您想使用Liferay的permissionChecker(可随时使用且可运行时配置),您应该使用非本地服务方法。我倾向于推荐这个,因为你可以使用Liferay's permissioning system - 而且你已经拥有Liferay管理的用户身份,角色,会员资格等等。创建自定义角色,授予自定义权限,并且您可以在运行时配置所有内容。
其次,虽然您肯定想要检查后端服务中的权限,但您可能希望在UI层上再次执行此操作:如果不允许用户操作某个对象,则不希望显示提示他们可以更改它的按钮,只是为了获得“拒绝许可”的回复。
话虽如此,我从未将Life spring(尤其是taglibs)与Liferay的许可系统联系起来。