目录
初步
获取属性
权限判断
-
初步
- Spring Security可以在一些视图技术中进行控制显示效果
- 例如:JSP或Thymeleaf
- 在非前后端分离且使用Spring Boot的项目中多使用Thymeleaf作为视图展示技术
- Thymeleaf对Spring Security的支持都放在thymeleaf-extras-springsecurityX中
- 所以需要在项目中添加此jar包的依赖和thymeleaf的依赖
- 在html页面中引入thymeleaf命名空间和security命名空间
-
获取属性
- 可以在html页面中通过 sec:authentication=""获取UsernamePasswordAuthenticationToken中所有getXXX的内容
- 包含父类中的getXXX的内容
- 根据源码得出下面属性:
- name:登录账号名称
- principal:登录主体,在自定义登录逻辑中是 UserDetails
- credentials:凭证
- authorities:权限和角色
- details:实际上是 WebAuthenticationDetails 的实例;可以获取 remoteAddress(客户端 ip) 和 sessionId(当前sessionId)
- 实现步骤:
- 在html中编写下面内容,测试获取到的值
- 编写控制器:
- thymeleaf页面需要控制转发,在控制器类中编写下面方法
-
权限判断
- 在html页面中可以使用sec:authorize="表达式"进行权限控制,判断是否显示某些内容
- 表达式的内容和access(表达式)的用法相同
- 如果用户具有指定的权限,则显示对应的内容
- 如果表达式不成立,则不显示对应的元素
- 不同权限的用户显示不同的按钮:
- 设置用户角色和权限
- 设定用户具有admin,/insert,/delete权限ROLE_abc角色
- 控制页面显示效果
- 在页面中根据用户权限和角色判断页面中显示的内容