spring mvC语言 使用sec:authorize加载javascript



我正在使用Spring MVC和thymeleaf进行开发。
我试图使用sec:授权加载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>

这最后2个资源,我试图使用sec:授权加载,但他们似乎处理每次我加载页面。这是使用sec:authorize的有效方法吗?如果不是,有什么办法可以做到吗?

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

这里很好地解释了为什么用户可以通过匿名身份验证(这反过来又打破了你的逻辑)在Spring Security中验证?

为了避免这种情况,并特别建议您需要具有特定访问权限的用户,需要角色如ROLE_USER, ROLE_ADMIN。

希望对你有帮助。

最新更新