使用security在画面级别控制权限
程序员文章站
2024-03-14 13:41:40
...
我们在使用spring security做系统认证和授权时,总会遇到这样的问题,就是画面上按钮和菜单级别的权限应该怎么处理,又怎么样在画面上去获取授权用户的信息呢?当然如果你使用的是JSP那就非常简单了,只要使用提供的标签库就可以实现,这也不是我们探讨的内容,我们今天要探讨的是如果你的画面是html或者thymleaf的情况下该如何处理,先说thymleaf的情况。
1、首先thymleaf需要在引入security依赖的同时,引入如下依赖,否则template无法解析表达式:
compile 'org.thymeleaf.extras:thymeleaf-extras-springsecurity4'
我这里使用的gradle构建工程,如果是maven请自行查询。
画面处理:
<div>
<!--获取授权用户的名字-->
<span id="userName" th:text="${#authentication.name}">无</span>
<!--获取授权用户的权限名称-->
<span id="userType" th:text="${#authentication.authorities}">权限名称</span>
</div>
权限判断:
<a href="addStaff" class="btn-com btn2" th:if="${#authorization.expression('hasRole(''ROLE_USER'')')}">新增员工</a>
2、如果是html,我们可以在JS中做权限的判断:
<script>
console.log([[${#authorization.expression('hasRole("ROLE_USER")')}]]);
</script>
上一篇: Oracle 12c 新特性