gpt4 book ai didi

spring - 使用 Spring AOP 获取特定的头参数?

转载 作者:行者123 更新时间:2023-12-04 00:03:38 33 4
gpt4 key购买 nike

我创建了 Spring Boot REST API,其中所有端点都将具有 header 参数“sessionGuid”。我想使用 AOP 打印该 sessionGuid。

@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 可能是不同操作中的第三个或第四个参数。

有没有办法让我只能从标题中打印“sessionGuid”。

最佳答案

如果您正在寻找问题的解决方案,您可以直接使用 RequestContextHolder .

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

如果您想更通用,也可以使用反射 API。

关于spring - 使用 Spring AOP 获取特定的头参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53963480/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com