【shiro】shiro+redis时提示no session id
最近集成shiro+redis时遇到一个问题,调用登录接口一直提示no session id[******],查看了其他的说法,基本上是说JSESSIONID冲突。按照解决方式自定义了sessionid后依然报之前的错。看来不是这里的问题。
后来跟踪代码发现:
这里saveSession后sessionId是正常写到redis中,之后又调用了标记的update方法,更新了一个id相同,expire=-1的session,这时redis中的sessionId居然消失了。。。
反复检查代码,发现:
这里.setGlobalSessionTimeout(-1),触发了update,进而删除了redis中的条目。
将这里改为.setGlobalSessionTimeout(1800000),问题解决。