当前位置: 首页 > 知识库问答 >
问题:

使用sec:authorize加载javascript

燕涵容
2023-03-14

我正在使用Spring MVC和Thymeleaf进行开发。
我正在尝试使用sec:authorize加载JavaScript。换句话说,我只希望在用户经过身份验证时加载这个脚本。下面是我试图开始工作的代码:

<script src="/js/jquery.min.js"
        th:src="@{/js/jquery.min.js}"></script>
        <script src="/js/submit.js"
        th:src="@{/js/submit.js}"></script>
        <script src="/js/url.js"
        th:src="@{/js/url.js}"></script>

        <!-- admin -->
        <script sec:authorize="isAuthenticated()" src="/js/jquery.simplemodal-1.4.4.js"
        th:src="@{/js/jquery.simplemodal-1.4.4.js}"></script>
        <script sec:authorize="isAuthenticated()" src="/js/admin.js"
        th:src="@{/js/admin.js}"></script>

最后两个资源我试图使用sec:authorize加载,但它们似乎在每次加载页面时都能处理。这是使用SEC:Authorize的有效方法吗?如果不是,有什么办法可以做到这一点吗?

共有1个答案

冀子石
2023-03-14

isAuthenticated()可能返回ROLE_ANONYMOUS这是一个合法的角色,因此它返回true并呈现脚本。

这里有一个很好的解释,为什么用户可以通过匿名身份验证(这反过来破坏了您的逻辑),为什么“匿名用户”在Spring Security中被身份验证?

为了避免这种情况,并特别建议您希望用户具有特定的访问权限,需要使用诸如ROLE_USER、role_admin之类的角色。

希望能有所帮助。

 类似资料:
  • 问题内容: 我使用以下方法将jQuery库附加到dom: 但是当我运行时: 控制台报告错误: 如何动态加载jQuery以及将其放入dom中使用它? 问题答案: 这里有一个工作的JSFiddle,上面有一个小例子,它可以确切地说明您正在寻找什么 这种动态加载JavaScript的方法存在一些问题。当涉及到非常基础的框架(如jQuery)时,您实际上可能想静态地加载它们,因为否则,您将必须编写一个完整

  • 问题内容: 我正在尝试加载一个图像文件(gif),该图像文件本地存储在与Eclipse Java项目相同的目录中: 是gif图像存储的相对路径。 使用上述方法的客户端代码是: 在Eclipse工作区中,在我的项目目录中,我有一个文件夹,其中存储了gif图像。但是客户端代码总是返回: 我在上面的方法中加载gif图片时做错了吗?在这种情况下,是否有更好的直接方法来执行文件查找? 非常感谢您的任何建议。

  • 问题内容: 我在下面编写的功能是否足以在当今大多数(如果不是全部)浏览器中预加载图像? 我有一个图像URL数组,可以循环访问这些URL,并为每个URL 调用该函数。 问题答案: 是。这应该适用于所有主要的浏览器。

  • 问题内容: 这个问题困扰了我一段时间。我必须在我的Java应用程序中加载几个文件,到目前为止,我工作的唯一方式是这样的: 但这是丑陋和可怕的。有一阵子我以为我在做这个工作: 但这由于某种原因不再起作用(我必须做些更改并且没有注意到。它返回null。 我应该使用getResource()而不是getSystemResource()(如果这样),为什么getSystemResource()是静态的却不

  • 有没有办法使用使用自定义TTL加载地图条目? 用例:“我的映射”条目都有一个自定义的过期期限,此时该条目不再有效(TTL不仅用于限制内存映射的大小,而且TTL应用于每个条目,而不是映射配置)。我在最初将条目放入映射时设置了此TTL,过期时间将保留在我的基础持久映射数据存储中,但从数据库加载条目时无法重置此TTL。 地图加载器文档似乎表明这可能不可能: 加载的条目将被放置到分布式映射中,它们将保留在

  • 问题内容: 我需要检查(使用Javascript)是否已加载CSS文件,如果未加载,则进行加载。jQuery很好。 问题答案: 只需检查一下是否存在一个元素,并将其属性设置为CSS文件的URL: 使用document.styleSheets集合,普通的JS方法也很简单: