【问题标题】:Dynamically Implementing Spring Security with Javascript使用 Javascript 动态实现 Spring Security
【发布时间】:2015-10-02 02:29:45
【问题描述】:

是否可以使用动态创建的 HTML 将 Spring 安全性集成到我的 DOM 中?例如,仅向具有 ROLE_ADMIN 的用户显示下面的按钮:

var adminButton = 
    '<div sec:authorize="hasRole('ROLE_ADMIN')" style="display:hide">' +
    '<a href="#">ADMINS ONLY </a>'                                     +
    '</div>'

$('#showButton').on('click', function(){
    adminButton.show();
}

这不是一个永久的解决方案,但最好知道是否可以通过 AJAX 请求来处理安全内容。

【问题讨论】:

    标签: javascript java html spring spring-mvc


    【解决方案1】:

    您的意思是仅当用户是管理员时才显示单击按钮?单击#showButton 时,您可以通过AJAX 询问服务器当前会话是否具有这样的权限。但是为什么不只在用户是管理员的情况下才呈现按钮呢?

    因为生成按钮的代码仍然存在,所以有人可以检查 JavaScript 并轻松绕过您的检查。通常在客户端处理安全方面是一种不好的做法,您通常做的只是第一次验证,以便在不需要刷新页面的情况下发出错误信号,但是每个操作的每个参数都应该在服务器端进行验证。

    在这种情况下,您需要仔细检查。第一次生成(或不生成)按钮时,第二次在处理按钮触发的操作的代码中。

    【讨论】:

      猜你喜欢
      • 2019-05-20
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 2017-08-15
      • 2012-02-25
      • 2020-03-16
      相关资源
      最近更新 更多