sec:授权不使用hasRole方法在thymeleaf代码中工作

时间:2014-12-26 20:06:43

标签: java spring spring-security spring-boot thymeleaf

在我目前的spring-boot项目中,我的视图标题有以下说明:

<a sec:authorize="hasRole('admin')" th:href="@{/home}">...</a>

在我运行应用程序并在浏览器中打开视图时(即使用户具有该角色)也无效。在同一视图中,我还使用了sec:authorize="isAuthenticated()"sec:authorize="isAnonymous()",两者都运行良好。在我的java代码中,我有一些使用此注释的方法:

@PreAuthorize("hasRole('admin')")

工作正常。为什么这在视图中不起作用?任何人都可以告诉我这里有什么问题?

2 个答案:

答案 0 :(得分:0)

因为您必须在角色名称之前添加“ROLE_”。

像这样:

sec:authorize="hasRole('ROLE_admin')"

答案 1 :(得分:0)

我认为,从Spring 3开始,ROLE_前缀不应该是必需的。

尝试使用hasAuthority('admin')代替hasRole()this帖子

中描述了两者之间的差异