问题描述:一个用户登录时,会把他的session当token存进redis。
然后另一个用户登录时,取的sessionId是同一个token。查了半天,还没查出是什么原因 。
调试时发现session对象不是同一个,但是sessionId取出来却是一样的。个人认为是session.getId时取是的redis里面的sessionId
正在排查。代码如下
public class RedisSessionDao extends AbstractSessionDAO {
private final String PREFIX="shiro_redis_session:";
private static Logger logger = LoggerFactory.getLogger(RedisSessionDao.class);
private RedisTemplate redisTpl;
@Value("${session.timeout}")
private Long sessionTimeout;
@Override
public void update(Session session) {
if (session==null || session.getId() == null){
logger.error("redis update session error:session or session id is null");
return;
}
try {
// redisTpl.opsForValue().set(PREFIX+session.getId().toString(), session, sessionTimeout, TimeUnit.HOURS);
redisTpl.