使用sec:authorize加载javascript

使用sec:authorize加载javascript,javascript,spring-mvc,spring-security,thymeleaf,Javascript,Spring Mvc,Spring Security,Thymeleaf,我正在使用SpringMVC和thymeleaf进行开发 我正在尝试使用sec:authorize加载javascript。换句话说,我只希望在对用户进行身份验证时加载此脚本。 以下是我试图开始工作的代码: <script src="/js/jquery.min.js" th:src="@{/js/jquery.min.js}"></script> <script src="/js/submit.js" th:src=

我正在使用SpringMVC和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的有效方法吗?Id它不是,有什么方法可以这样做吗?

isAuthenticated()可能会返回ROLE\u ANONYMOUS,这是一个合法的角色,因此为什么它会返回true并呈现脚本

下面是一个很好的解释,为什么用户可以通过匿名身份验证(这反过来会破坏您的逻辑)

为了避免这种情况,并特别建议您希望用户具有特定访问权限,需要角色,如ROLE\u user、ROLE\u ADMIN


希望有帮助。

这对您有帮助吗?-可能您缺少了一些thymeleaf配置,而不是使用isAuthenticated()。我使用了hasRole('ROLE_ADMIN'),正如您提供的链接上所发布的那样,它起到了作用。我应该删除我的问题吗?(stackoverflow的新功能)谢谢,尽管它有效,但我一直想知道为什么,这非常有用。正确的方法是: