在我目前的spring-boot项目中,我的视图标题有以下说明:
<a sec:authorize="hasRole('admin')" th:href="@{/home}">...</a>
在我运行应用程序并在浏览器中打开视图时(即使用户具有该角色)也无效。在同一视图中,我还使用了sec:authorize="isAuthenticated()"
和sec:authorize="isAnonymous()"
,两者都运行良好。在我的java代码中,我有一些使用此注释的方法:
@PreAuthorize("hasRole('admin')")
工作正常。为什么这在视图中不起作用?任何人都可以告诉我这里有什么问题?
答案 0 :(得分:0)
因为您必须在角色名称之前添加“ROLE_”。
像这样:
sec:authorize="hasRole('ROLE_admin')"
答案 1 :(得分:0)
我认为,从Spring 3开始,ROLE_
前缀不应该是必需的。
尝试使用hasAuthority('admin')
代替hasRole()
。 this帖子