【问题标题】:Filter request header with regular expression in apache在apache中使用正则表达式过滤请求标头
【发布时间】:2022-06-16 00:42:07
【问题描述】:

我需要通过过滤 apache 中的请求标头字符串来发送响应标头。要过滤字符串,可以使用正则表达式。

echo 命令可以很好地从请求标头发送响应标头。

使用 echo 命令的参考 URL https://httpd.apache.org/docs/current/mod/mod_headers.html#page-header

例如

Header echo ^group 

现在我们需要用正则表达式过滤

例如

Header echo ^group <filter group with regular expression>

需要使用的正则表达式为:/(?&lt;=,)[^,]*MYROLE[^,]+(?=,)/gm

组字符串示例:"AV=en:CN=(A) MYROLE - Application, AV=en:CN=(A) DATA - Application";

我尝试了下面给出的语法,但它不起作用

Header echo group "%{HTTP:group}i m#/(?<=,)[^,]*MYROLE[^,]+(?=,)/#"

预期的请求和响应转储。

请求

HTTP/1.1 200 OK

Cache-Control: private

group: OU=Groups Azure Virtual Desktop,OU=PROD,DC=prod,DC=test,DC=be:CN=(A) MYROLE - BO - TC BO Admin,OU=Groups XYZ Application Entitlements,OU=PROD,DC=prod,DC=test,DC=be:CN=(A) MYROLE - BO - ABO,OU=Groups XYZ Application Entitlements,OU=PROD,DC=prod,DC=test,DC=be:CN=(A) MYROLE - BO - TBO,OU=Groups XYZ Application Entitlements,OU=PROD,DC=prod,DC=test,DC=be:CN=(A) MYROLE - BO - B and C,OU=Groups XYZ Application Entitlements,OU=PROD,DC=prod,DC=test,DC=be:CN=(C) Adobe Fullstack Engineers

预期响应

HTTP/1.1 200 OK

Cache-Control: private

group: DC=be:CN=(A) MYROLE - BO - TC BO Admin,DC=be:CN=(A) MYROLE - BO - ABO,DC=be:CN=(A) MYROLE - BO - TBO,CN=(A) MYROLE - BO - B and C

请建议如何使用正则表达式过滤字符串(组)并将其作为逗号分隔的组作为响应头发送回。

【问题讨论】:

  • 请提供请求标头的转储以及您打算发回的预期响应标头
  • 感谢您的回复,用请求和响应转储更新了问题。

标签: regex bash apache shell


猜你喜欢
  • 2012-06-05
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
  • 2021-05-31
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多