javascript - 使用 Javascript 动态实现 Spring Security

标签 javascript java html spring spring-mvc

是否可以通过动态创建的 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 请求来处理安全内容。

最佳答案

您的意思是仅当用户是管理员时才显示单击按钮?当#showButton单击后,您可以通过 AJAX 询问服务器当前 session 是否具有此权限。但是为什么只有当用户是管理员时才不渲染按钮呢?

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

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

关于javascript - 使用 Javascript 动态实现 Spring Security,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31389917/

相关文章:

javascript - 请验证此代码给我一个建议?

javascript - 限制输入字符并阻止用户输入

javascript - 选项卡内的轮播

javascript - 如何从异步调用返回响应?

java - 使用 StandardCharset UTF-8 处理格式错误的异常

java - 实现重复性作业,每秒重复次数不超过一次

html - 如何防止由于填充而导致图像链接区域过多

javascript - 如何使用 URL.createObjectURL?

java - spring security中的多个登录表单

javascript - ReactJs——在 li 元素的点击事件上,类不会立即添加