Получить конкретный параметр заголовка, используя Spring AOP? - PullRequest
0 голосов
/ 28 декабря 2018

Я создал REST API Spring Boot, где у всей конечной точки будет параметр заголовка "sessionGuid".Я хотел бы напечатать этот sessionGuid, используя AOP.

@Before("PointcutDefinition.controllerLayer()")
  public void beforeAdvice(JoinPoint joinPoint)
  {
    Object[] signatureArgs = joinPoint.getArgs();
    for (Object signatureArg : signatureArgs)
    {
      System.out.println("Arg: " + signatureArg);
    }
  }

Приведенный выше код печатает все аргументы, т.е. если мой URL-адрес

{{base-url}} / v1/ login / users / SOMENAME / status печатает как SOMENAME (переменная пути), так и значение "sessionGuid".Я просто хочу напечатать значение из параметра заголовка "sessionGuid".

joinPoint.getArgs ();возвращает массив.Я не хочу печатать что-то вроде arg [1], так как sessionGuid может быть 3-м или 4-м аргументом в различных операциях.

Есть ли способ, которым я могу печатать только "sessionGuid" из заголовка.

1 Ответ

0 голосов
/ 28 декабря 2018

если вы ищете решение своей проблемы, вы можете использовать напрямую RequestContextHolder.

    HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
    String header = request.getHeader("sessionGuid")

, вы также можете использовать API отражения, если хотите быть более универсальным.

...