Javascript角色处理

Javascript role handling

本文关键字:处理 角色 Javascript      更新时间:2023-09-26

Hi我使用spring安全性在服务器端定义一些角色,并限制对某些Restful地址的访问。服务器端不是问题。javascript是个问题。我在客户端有一些链接,当用户没有管理员角色时,我会禁用这些链接。

在javascrip/jquery中,最简单的方法是什么?有一个脚本可以管理这个吗?

附言:我是javascript新手

在服务器端,角色由spring安全性管理,以避免未经授权的用户访问它们。我想知道的是:有没有一个脚本可以帮助我管理所有链接,我不会在客户端(集中式)混淆给普通用户,或者让我手动转到页面上的每50个链接,并添加对角色的检查?

更合适的做法是防止链接从服务器端出现。因为如果你只是禁用它,任何智能用户都可以查看源代码,获取链接并运行它

$('.my-link').click(function () {return false;});

您可以使用event.prventDefault()而不是返回false

/// Disable all Links with a class
$("a").click(function(event){
       event.preventDefault();
       //// check if admin
          if(  isAdminFunc() ){
               handleThisLinkClickForAdmin();
          }else{
                 //// non admin users can not access links..  
          }
});

我终于找到了该怎么做。在后端,我不需要更改任何内容。在前端,我必须在我的html页面上添加一个标签库:

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>

在我可以保护只有具有此角色及以上的用户才能访问的块之后:

<a href="http://www.everyUserAccess.com/html/">All normal user can access</a>
<sec:authorize access="hasRole('admin')">
<a href="http://www.onlyAdminAccess.com/html/">Only user with Admin role cann access</a>
</sec:authorize>

在本例中,第一个链接可供所有人访问,第二个链接仅可供具有"admin"角色的用户访问。