gpt4 book ai didi

java - AEM Servlet 获取请求 header 值

转载 作者:行者123 更新时间:2023-12-02 11:22:02 28 4
gpt4 key购买 nike

我创建了一个 servlet 并使用 felix 注释注册了该 servlet,如下所示

public class BundleServlet extends SlingAllMethodsServlet
{

@Override
protected final void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response)
throws ServletException
{
String valueFromQueryaram= request.getParameter("BundleId") //working
String valueFromHeader= request.getHeader("") // Not working
}

我想从其他系统获取BundleId。如果它们作为查询参数发送,我可以使用 getParameter 轻松获取值。但由于安全原因,BundleId 的值不应该在浏览器中可见,因此需要通过其他方式获取该值。当他们在请求 header 中发送 BundleId 时,问题就解决了。但我的 aem servlet 没有通过 getHeader 接收值。

还有其他方法可以读取该值,例如 setAttribute 吗?

有谁遇到过这种情况吗?

最佳答案

不确定如何通过 header 字段而不是查询参数发送 secret 被认为更安全。两者都面临着同样的安全威胁。

但是要回答你的问题,你的代码是正确的。要读取您在 http header 中看到的任何字段, request.getHeader() 是正确的方法。例如,要从下面的 header 读取 User-Agent,request.getHeader("User-Agent")) 将返回 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,像 Gecko)Chrome/64.0.3282.167 Safari/537.36'

enter image description here

可能的失败:

  • 检查您是否在dispatcher.any 处配置了/clientheaders 来限制请求 header
  • 检查 apache 配置是否正在修改 httpd.conf 中的 header

关于java - AEM Servlet 获取请求 header 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49845156/

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