Spring Security --- Thymeleaf 中 Spring Security 的使用

目录

初步

获取属性

权限判断


  • 初步

  • Spring Security可以在一些视图技术中进行控制显示效果
  • 例如:JSP或Thymeleaf
  • 在非前后端分离且使用Spring Boot的项目中多使用Thymeleaf作为视图展示技术
  • Thymeleaf对Spring Security的支持都放在thymeleaf-extras-springsecurityX中
  • 所以需要在项目中添加此jar包的依赖和thymeleaf的依赖

    Spring Security --- Thymeleaf 中 Spring Security 的使用_第1张图片

  • 在html页面中引入thymeleaf命名空间和security命名空间

    Spring Security --- Thymeleaf 中 Spring Security 的使用_第2张图片

  • 获取属性

  • 可以在html页面中通过 sec:authentication=""获取UsernamePasswordAuthenticationToken中所有getXXX的内容
  • 包含父类中的getXXX的内容
  • 根据源码得出下面属性:
    • name:登录账号名称
    • principal:登录主体,在自定义登录逻辑中是 UserDetails
    • credentials:凭证
    • authorities:权限和角色
    • details:实际上是 WebAuthenticationDetails 的实例;可以获取 remoteAddress(客户端 ip) 和 sessionId(当前sessionId)
  • 实现步骤:
  • 在html中编写下面内容,测试获取到的值

    Spring Security --- Thymeleaf 中 Spring Security 的使用_第3张图片

  • 编写控制器:
  • thymeleaf页面需要控制转发,在控制器类中编写下面方法

    Spring Security --- Thymeleaf 中 Spring Security 的使用_第4张图片

  • 权限判断

  • 在html页面中可以使用sec:authorize="表达式"进行权限控制,判断是否显示某些内容
  • 表达式的内容和access(表达式)的用法相同
  • 如果用户具有指定的权限,则显示对应的内容
  • 如果表达式不成立,则不显示对应的元素
  • 不同权限的用户显示不同的按钮:
    • 设置用户角色和权限
    • 设定用户具有admin,/insert,/delete权限ROLE_abc角色

    • 控制页面显示效果
    • 在页面中根据用户权限和角色判断页面中显示的内容

      Spring Security --- Thymeleaf 中 Spring Security 的使用_第5张图片

你可能感兴趣的:(Spring,Security,spring,java,后端,security)