SpringSecurity获取当前用户,程序运行一段时间后此方法无返回

springsecurity获取当前用户,测试时一切正常,但是在服务器上跑个十天半个月之后获取当前用户的方法就会无返回,导致前端登录不上
public CommonResult<User> getCurrentUser() {
        logger.info("开始查询当前登录用户");
        String name = (String) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        User user = mapper.loadUserByUserName(name);
        logger.info("当前登录用户为{}", name);
        return new CommonResult<>(200, true, "查询成功,当前登录用户为" + name, user);
    }
后台日志无报错,也没有打印输出,该程序其他接口可以正常返回
目前我怀疑是String name = (String) SecurityContextHolder.getContext().getAuthentication().getPrincipal();这段代码阻塞住了,但是bug无法复现
求解答~

系统多加日志,让程序增加输出,再看结果吧,这里获取数据一般不会卡死,数据存到ThreadLocal中的,除非内存泄漏,不然那查询速度很快的

会不会是认证过期了,然后导致上下文中的信息被清除

Principal转成UserDetails