Spring-boot SecurityContext проблема сброса - PullRequest
0 голосов
/ 26 декабря 2018

Я хочу управлять сеансом, используя Redis Session в spring-boot и zuul.

Чтобы включить сеанс Redis, мы активировали, как показано ниже.(Все службы)

@Configuration
@EnableRedisHttpSession(redisFlushMode = RedisFlushMode.IMMEDIATE)
public class SessionConfig extends AbstractHttpSessionApplicationInitializer {
}

Сохранение объекта аутентификации показано ниже.

  securityContext.setAuthentication(appInstanceContext.authentication);
  session.setAttribute("SPRING_SECURITY_CONTEXT", securityContext);

Обычно проверяется SecurityContext в фильтре, как показано ниже в службе, которая фактически используетсеанс.

 @Override
 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
      HttpServletRequest httpServletRequest = (HttpServletRequest)request;
      SecurityContext securityContext = SecurityContextHolder.getContext();
      Authentication authentication = securityContext.getAuthentication();
      HttpSession session = httpServletRequest.getSession();
      System.out.println(httpServletRequest.getRequestURI() + " :: " + session.getId() + " // " + authentication);
      chain.doFilter(request, response);
 }

-> / api / test :: 0feafb3f-7694-459f-aa39-ddb413d46b79 // com.xxxx.AuthenticationToken@5540979

Тем не менее, выполняется SecurityContextHolder.getContext ().GetAuthentication () в методе Controller возвращает значение Null.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...