JS级别的Grails授权

时间:2014-11-18 10:11:44

标签: javascript grails spring-security

在我的Grails应用程序中,GUI的某些部分是使用JS自动生成的(例如表行)。现在,我想根据用户的角色显示/隐藏这些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" ){ ... }

这样可行,但我不确定这是否是保存/清洁/ ...而且我有点害怕它可能很容易被黑客入侵。

1 个答案:

答案 0 :(得分:0)

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

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