javascript - JS 级别的 Grails 授权

标签 javascript grails spring-security

在我的 Grails 应用程序中,GUI 的某些部分是使用 JS 自动生成的(例如表格行)。现在,我想根据用户的 Angular 色显示/隐藏其中一些 GUI 元素,例如ROLE_ADMIN 可能会看到“删除”按钮,ROLE_USER 可能不会。

我的方法(我正在使用 Spring Sec 插件):

_myview.gps HTML-part:
    <g:set var="isAdmin" value="${sec.ifAllGranted(roles: 'ROLE_ADMIN', "true")}" />

_myview.gps JS-part:
    if( '${isAdmin}' == "true" ){ ... }

这行得通,但我不确定这是否是保存/清理/......而且我有点担心它很容易被黑客入侵。

最佳答案

如果您在 GSP 中生成 Javascript,请不要将检查委托(delegate)给 Javascript。而不是 if( '${isAdmin}' == "true" ){ ...JS CODE... }就写<sec:ifAllGranted(roles="ROLE_ADMIN")>...JS CODE...</sec:ifAllGranted> .

至于安全性,除非您在 Controller /服务级别检查用户的 Angular 色(因此在您的 Javascript 将调用的位置),否则您永远不会真正安全。

关于javascript - JS 级别的 Grails 授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26991663/

相关文章:

javascript - mongodb使用mapreduce从其他集合插入大量集合中的嵌入文档

javascript - 在 Shopify 和 JQuery 的 getJSON 调用内部和外部使用变量?

grails - 一对多关系的Gorm映射/自引用

java - 如何下载pentaho数据库模型和报告引擎?

java - 在 Spring Boot 安全性中,无法跳过登录 URL 的 OncePerRequestFilter 过滤器(主要是在初始登录期间获取 JWT token )

javascript - "the server tag is not well formed"是什么意思,这个按钮会发生什么?

javascript - 在 moment.js 中从月份转换为结束月份

grails - 将log4j.xml放在Grails应用程序中的哪里?

spring - CSRF与Spring Security集成时, session 超时导致Spring MVC中的访问被拒绝

java - 未定义名为 'CustomAuthenticationProvider' 的 bean