开发者学堂课程【Spring Security知识精讲与实战演示(四):案例之资源服务中加入校验用户所需对象】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/733/detail/13083
案例之资源服务中加入校验用户所需对象
资源服务还差最后一步,如图分析还差什么?
a系统想访问b系统,必须经过用户的允许。只有用户允许访问,a系统才能访问到b系统,比如a系统要去查b系统中的一些数据,如果a系统本来就没有登录b系统,那就不能,所以在a系统访问b系统资源时,在b系统内部要检测当前用户是否登录。如果没有登陆,那就不可能访问成功,所以要对认证进行过滤,进行校验查看。当前a系统用户对b系统中的资源进行访问时,用户是否认证通过,那可以选择第一种方案,写一堆认证的信息,写source,写所有的东西,进行检测,看是否认证通过。需要检测是否用户通过认证,安全性的东西,spring oauth2已经预料到了,这一步操作spring oauth2已经做完,不需要做任何配置,导入包就能使用,但是要注意一个事情,需要导入自己用户的对象。为什么只用掌握自己用户的对象,那自己对象给谁用。它是给token用的,就是它携带过来的token。要注意上面这个地方是要认证的,下面这个地方不需要,只需要检验认证,但是检验认证,可以拿之前的项目,也可以把用户对象拿过来。这是容易理解的一个点,只需要将sysrole和sysuser两个对象拿过来,就能校验是否认证,这个操作可以使用。
那这个地方就有疑惑,上面怎么认证?
检验认证是在下面,这里是写了一个过滤器,在这里自己手动去校验token是否合法,但是要注意一个事情,现在token不是自己生成的。在这个token上,之所以校验是自己生成的,而下面这个token它不是自己生成的,这个是spring oauth2生成的,所以在下面校验token的时候,没有办法自定义,你只有自己生成token,你自己校验。但要注意事情,在上面生成token时,一定要让用户认证,不认证不能生成token。同样的道理,上面认证了,要用到sysrole和sysuser,在下面校验的时候依然要把这两个对象原封不动的校验一下看是否合法,所以系统内部是需要这两个对象的,不需要做其他任何配置。这个地方可能理解起来有点困难,因为现在的token并不是自己生成的,是它生成的,所以需要提供对等的资源即可。