Session has already been invalidated

今天在登录后台系统时发现登不上,报错了【Session has already been invalidated】,一脸懵,参考https://blog.csdn.net/u012867699/article/details/77942712 博友的文章,发现是自己做了件蠢事,特此记录。
问题定位:

public static void set2Session(String name, Object value) {
    session.setAttribute(name, value);
}

原因在于这里在调用session的时候session已经失效了,失效的原因在于在写这个工具类的时候因为好几个方法都用到session所以提出来设成了全局变量。
错误示范:

public class BackUtils {
    private static final HttpSession session = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getSession();
}

各个方法用到session时每次都实时获取就可以了,仔细想想很显而易见的原因,但这种问题还是要碰到过一次才印象深刻。

你可能感兴趣的:(spring,boot)