【问题标题】:Access control using Spring Security in ExtJS client?在 ExtJS 客户端中使用 Spring Security 进行访问控制?
【发布时间】:2011-07-28 22:54:38
【问题描述】:
我正在使用 Grails 1.3.7、Spring Security Plugin for Grails 和 ExtJS 3.3.1。我将在我的应用程序中拥有大约 20 个角色,并使用静态 URL 规则来保护我的控制器层。我的客户端将全部是 ExtJS,因为我刚开始使用 ExtJS,我想在那里与你们核实一下,找出将访问控制集成到 ExtJS 客户端的正确方法。基本上,如何组织代码来确定要为给定用户显示 UI 的哪个部分?此外,某些表单可能对某些用户是只读的。
【问题讨论】:
标签:
grails
extjs
spring-security
【解决方案1】:
在我们的应用程序中,我们有一个 JSON 编码的用户对象,其中包含该用户的角色/权利。它们在加载时嵌入在页眉中,以便全局可用。
然后,有一个 hasEntitlement(userObj,Entitlement) 函数来测试我们嵌入的 userObj 中的特定权利。因此,页面中的所有 ExtJs 操作在执行操作之前都会检查这一点,并且所有按钮的 'disabled' 属性都会在初始化时设置为该函数调用。
当然,在使用 Spring 方法级安全性处理来自 UI 的请求之前,我们也会检查所有这些服务器端,所以如果有人在前端破解 JS,他们并没有破坏后端结束。