在我的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('SUPERADMIN')">
<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>');
}
但是安全标记不会被考虑在内,并且在查看源代码时只是可见。
请注意,当放在静态组件周围的jsp文件中时,安全性可以正常工作。我想这与生命周期有关,因为必须在完全呈现页面之前应用安全性约束。这有什么解决方法吗?谢谢!