在 ExtJS 客户端中使用 Spring Security 进行访问控制?

发布于 2024-10-30 15:20:57 字数 232 浏览 0 评论 0原文

我正在使用 Grails 1.3.7、Grails 的 Spring Security 插件和 ExtJS 3.3.1。我的应用程序中将有大约 20 个角色,并使用静态 URL 规则来保护我的控制器层。我的客户端将全部是 ExtJS,因为我刚刚开始使用 ExtJS,我想与你们那里的人核实一下,找出将访问控制集成到 ExtJS 客户端的正确方法。基本上,如何组织代码来确定为给定用户显示 UI 的哪一部分?此外,某些表单对于某些用户来说可能是只读的。

I am using Grails 1.3.7, Spring Security Plugin for Grails, and ExtJS 3.3.1. I will have about 20 roles in my app and use static URL rules to secure my controller layer. My client side will be all ExtJS, as I just started with ExtJS, I'd like to check with you folks there and find out what is the proper way of integrating access control into ExtJS client side. Basically, how to organize the code that determines which part of the UI to display for a given user? And further more, some form maybe read-only for some users.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

三生殊途 2024-11-06 15:20:58

在我们的应用程序中,我们有一个 JSON 编码的用户对象,其中包含该用户的角色/权利。它们在加载时嵌入到页面标题中,以便全局可用。

然后,有一个 hasEntitlement(userObj,Entitlement) 函数来测试我们嵌入的 userObj 中的特定权利。因此,页面中的所有 ExtJs 操作都会在执行操作之前检查此项,并且所有按钮的“disabled”属性都会在 init 时设置为此函数调用。

当然,在使用 Spring 方法级安全性处理来自 UI 的请求之前,我们也会检查所有服务器端,因此,如果有人攻击了前端的 JS,他们也不会损害后端。

In our application we have a JSON encoded user object that contains the Roles/Entitlements for that user. These are embedded in the page header on load so that they're available globally.

Then, there is a hasEntitlement(userObj,Entitlement) function that tests for a specific entitlement in the userObj we embedded. So, all ExtJs actions in the page check this before taking an action, and all buttons' 'disabled' properties are set to this function call on init.

Of course we also check all of this server side before processing a request from the UI using Spring method level security, so if someone hacks the JS on the front end, they have not compromised the back end.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文