用Javascript动态实现Spring安全性

Dynamically Implementing Spring Security with Javascript

本文关键字:Spring 安全性 实现 动态 Javascript      更新时间:2023-09-26

是否可以将Spring安全性集成到动态创建的HTML的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请求处理,那将是很好的。

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

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

在这种情况下,你要做双重检查。第一次是在生成(或不生成)按钮时,第二次是在处理按钮触发的操作的代码中。