通过jquery动态添加Spring Security标记

时间:2018-04-11 13:01:40

标签: javascript jquery spring spring-mvc spring-security

在我的Spring-MVC应用程序中,我使用模板的JavaScript文件来创建带有“添加”按钮的数据表。在模板的文件中,按钮将添加到工具栏中,如下所示:

$("div.toolbar").html(
'<div class="table-tools-actions">
  <button class="btn btn-primary" id="addBtn">
    Add
  </button>
 </div>');

对于某些页面,即“/ users”,我希望此按钮仅对具有Superadmin角色的用户可用,因此希望使用Spring Security的security:authorize标记。我试着这样编辑js文件:

if(window.location.href.indexOf("users") > -1) {
  $("div.toolbar").html(
     '<div class="table-tools-actions">
      <security:authorize access="hasRole(&#39;SUPERADMIN&#39;)">
        <button class="btn btn-primary" id="addBtn">
          Add
        </button>
      </security:authorize>
      </div>');
} else {
  $("div.toolbar").html(
   '<div class="table-tools-actions">
      <button class="btn btn-primary" id="addBtn">
        Add
      </button>
    </div>');
  }

但是安全标记不会被考虑在内,并且在查看源代码时只是可见。

Element inspection in Chrome

请注意,当放在静态组件周围的jsp文件中时,安全性可以正常工作。我想这与生命周期有关,因为必须在完全呈现页面之前应用安全性约束。这有什么解决方法吗?谢谢!

0 个答案:

没有答案