开课吧——孤尽班学习心得(直播-Day11)

159 阅读2分钟

这次课程的主要内容为《权限管理》。承接上次Oauth2的内容,这次主要讲解JWT等知识点!不得不说,这一套体系下来,如果我能理解并能在项目中自如使用,那我真的可以说进了一大步!哈哈哈。好了,话不多说,先把知识点记录下来! JWT: Json web token (JWT), 是为了在⽹络应⽤环境间传递声明⽽执⾏的⼀种基于JSON的开放标准(RFC7519).定义了⼀种简洁的,⾃包含的⽅法⽤于通信双⽅之间以JSON对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使⽤HMAC算法或者是RSA的公私秘钥对进⾏签名。

JWT由三部分组成

图片.png

图片.png 注:Base64是⼀种编码,也就是说,它是可以被翻译回原来的样⼦来的。它并不是⼀种加密过程。

图片.png

图片.png 签名的⽬的: 最后⼀步签名的过程,实际上是对头部以及负载内容进⾏签名,防⽌内容被窜改。如果有⼈对头部以及 负载的内容解码之后进⾏修改,再进⾏编码,最后加上之前的签名组合形成新的JWT的话,那么服务器 端会判断出新的头部和负载形成的签名和JWT附带上的签名是不⼀样的。如果要对新的头部和负载进⾏ 签名,在不知道服务器加密时⽤的密钥的话,得出来的签名也是不⼀样的。

图片.png

⽤户⻆⾊管理: RBAC模型: 系统管理⼯程完成了对于rbac数据的管理 RBAC(基于⻆⾊的权限控制 role base access control)是⼀种设计模式,是⽤来设计和管理权限相关数据的⼀种模型!

权限控制: Spring Security中定义了四个⽀持权限控制的表达式注解,分别是 @PreAuthorize @PostAuthorize @PreFilter @PostFilter 其中前两者可以⽤来在⽅法调⽤前或者调⽤后进⾏权限检查,后两者可以⽤来对集合类型的参数或者返回值进⾏过滤。在需要控制权限的⽅法上,我们可以添加@PreAuthorize注解,⽤于⽅法执⾏前进⾏权限检查,校验⽤户当前⻆⾊是否能访问该⽅法。

登录流程

图片.png

这次先记录了主要内容!关于代码展示,我先在自己项目中调试好了再说吧。加油!