springBoot2.2 整合shiro redis 时,第一次登陆 验证码为空,第二次登陆就没问题了

springBoot2.2 整合shiro redis 时,第一次登陆 验证码为空,第二次登陆就没问题了

问题原因

首次加载页面后,打印存入验证码的sessionid,登陆的时候再次打印本次的sessionid。发现两次的sessionid不同。经过debug发现 首次去登陆页面的时候并没有生成sessionID,无奈使用了笨办法 在去登陆页面的时候手动生产一个sessionid ,算是解决了这个问题(如下图)。
springBoot2.2 整合shiro redis 时,第一次登陆 验证码为空,第二次登陆就没问题了

加上后发现还是不行,虽然登陆页面有sessionid并且和登陆时候的sessionid 相同,但是获取的验证码依然为null。同样的session 明明我在生成验证码的时候存到session里面了啊,怎么获取不到?肯定是在某个地方 我的session被重置了,看了半天源码也没明白,在我要找大佬求救的时候,旁边的哥们说你试着把验证码放到最后获取,抱着尝试的态度我把获取验证码的路径提取出来放到了js最后,结果TMD的好了,这是为啥??????????????有没有知道的大神 给指导一下,我是服了。
springBoot2.2 整合shiro redis 时,第一次登陆 验证码为空,第二次登陆就没问题了

解决方法总结(如果您有更好的方法麻烦告知一下)

  1. 在去登陆页面之前手动生成session
  2. 把获取验证码的方法放到最后