我有一个使用SpringBoot+Thymeleaf+jQuery的项目。我想在JavaScript中检查一个认证用户的角色。基于一个角色,一个新的thymeleaf将使用jQuery呈现。我在HTML中有这样的代码:
<sec:authorize="hasRole('ROLE_ADMIN')" var="hasRoleAdmin"></sec:authorize>
然后hasRoleAdmin变量应该在我的JS中可见,所以我可以这样做:
function renderButton(){
var btn="";
if('${hasRoleAdmin}' == true){
btn = "<button id='saveButton'>Save</button>";
}else{
btn = "<button id='viewButton'>View</button>";
}
$("#root").append(btn);
}
我的第一个想法是用jQuery呈现thymeleaf,就像这样
btn = <span sec:authorize=hasRole('ROLE_ADMIN')><button id='saveButton'>Save</button></span>
$("#root").append(btn);
但是这两个都可以。如何在JavaScript中检查Spring安全角色?我没有使用内联JS,所有的源都是单独的文件。JSP中有一个如何做到这一点的例子。
springsecurity role check inside javascript
1条答案
按热度按时间slwdgvem1#
要在javascript中使用thymeleaf,可以将表达式封装在
[[...]]
中。关于你的角色问题。我相信你可以做一些
表达式应该在那里发送true或false给客户端。还要注意#authorization.expression的语法可能取决于您使用的thymeleaf库的版本;我可以保证它在thymeleaf-extras-springsecurity 4版本3.0.4.RELEASE中工作。