Безопасность о Threadlocal в Java

Chao Jiang спросил: 03 ноября 2018 в 08:48 в: java

В настоящее время у меня есть веб-проект. Я сохраняю переменную типа sessionid в threadlocal в Перехватчике SpringMVC и удаляю ее в методе postHandle. Но мне интересно, безопасно это или нет. ех. если поток сохранил sessionid, то произошло переключение контекста процессора, в этом случае что-то еще возьмет этот поток и установит другой sessionid или удалит его в postHandle. Когда мы переключаемся обратно, sessionid изменился. Если это возможно, у нас есть другие решения?

@Interceptor
public class BusinessInterceptor extends HandlerInterceptorAdapter {@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
    Object handler) throws Exception {
    ThreadLocalUtil.contextThreadLocal.set(createSessionId());
    return true;
}@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
    Object handler, Exception ex)
    throws Exception {
    ThreadLocalUtil.contextThreadLocal.remove();
}
}

0 ответов