为什么第二次testrole1携带了登陆信息?
当第一次登陆后,并没有在cookie或者其他域保存任何信息 也就是说没有任何信息可以证明用户登陆了
但是第二次直接跳转页面到testrole这个路径 却有第一次登陆的角色的信息 服务器识别到了用户曾经登陆过 也知道用户的角色和权限
请问一下是怎么识别的 是因为配置的问题吗
当第一次登陆后,并没有在cookie或者其他域保存任何信息 也就是说没有任何信息可以证明用户登陆了
但是第二次直接跳转页面到testrole这个路径 却有第一次登陆的角色的信息 服务器识别到了用户曾经登陆过 也知道用户的角色和权限
请问一下是怎么识别的 是因为配置的问题吗
2018-11-22
原理如下:第一次后台认证成功后,shiro肯定生成了一个sessionId关联着某个subject。放到session管理器中。然后把sessionId通过http响应头set-Cookie的形式返回给浏览器。浏览器保留了该Cookie。下次访问第二个url时,http请求头里就携带了上次的cookie信息,也就是sessionId,然后shrio就可以通过从请求头中提取,查询内部的session管理器,取出关联的subject对象。
这种形式,只能适用于web。
如果前端是app或者小程序的情况,不太实用。因为有些框架是不支持设置cookie的,但是会支持设置header。所以如果前端是app或者小程序的话,一般会通过header来返回和获取对应的token(相当于sessionId)。我看jeectBoog就是放在请求头和响应头里的。那个token。
举报