提问人:Matthieu Durand 提问时间:9/29/2023 更新时间:9/29/2023 访问量:28
Apache 未发送任何请求标头
Apache not sending any request header
问:
我通过实现 Apache OIDC 模块遇到了这个问题,但不仅仅是未发送的模块标头,而是任何标头,所以我删除了等式的这一部分。
我有一个 Java 应用程序作为后端。当我的前端向后端发出请求时,我想在那里收到我的标题。我有一个棱角分明的前端。在我的 CI 测试服务器上,构建的文件设置在 apache 容器内,在我的开发环境中,apache 重定向到设置在 4200 端口上的 angular 开发服务器。通常,apache服务器应该能够添加一个标头来请求通过它,并且它在我的测试环境中可以完美地完成。
在我的开发环境中,没有添加任何标头。响应标头也是如此。这是我的 vhosts conf 文件的样子,我将其简化到最大以了解它可能来自哪里:
<VirtualHost *:80>
RewriteEngine On
RequestHeader set test "test"
Header set mon-en-tete "reply test"
ProxyPass / http://front:4200/
ProxyPassReverse / http://front:4200/
ProxyPass /api/ http://back:8080/service/api/ connectiontimeout=5 timeout=36000
ProxyPassReverse /api/ http://back:8080/service/api/
</VirtualHost>
在后端,我以这种方式读取标题:
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
for (Iterator<String> iter = request.getHeaderNames().asIterator(); iter.hasNext();) {
String headerName = iter.next();
LOGGER.info("headers {} : {}",headerName,request.getHeader(headerName));
}
}
这在 CI 环境中工作正常,因为它确实记录了标头,但在我的测试环境中什么都没有,我只从浏览器获取标头:
headers host : server:8080
headers connection : keep-alive
headers pragma : no-cache
headers cache-control : no-cache
headers accept : application/json, text/plain, */*
headers authorization :
headers user-agent : Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36
headers content-type : application/json
headers origin : http://localhost
headers referer : http://localhost/
headers accept-encoding : gzip, deflate
headers accept-language : en-US,en;q=0.9,fr;q=0.8
我还最大限度地简化了 httpd.conf,使用了默认版本,但也没有得到运气。我确实重建了我的apache容器,我用隐私浏览器等进行了测试
答: 暂无答案
评论