2016-04-27 119 views
0

我創建了一個用AES加密數據的apache模塊。 我的最終目標是爲每個請求使用不同的AES密鑰,生成一個16字節的新密鑰用於AES加密文件並將密鑰(使用RSA加密)作爲自定義標頭在模塊中設置自定義頭部到apache響應

問題是我可以找不到任何文檔以編程方式設置自定義標題。

我期待像ap_set_handler("HeaderName","content")

我只找到這個文件,使用這樣的功能: http://opensource.apple.com/source/apache/apache-643/apache/src/modules/proxy/proxy_ftp.c

的問題是,包括它在我的源代碼給我一個implicit declaration of function 'ap_set_header'錯誤,即使我包含該文件的相同.h文件。

我敢肯定,這是可以做到,但我真的不知道到哪裏去尋找

回答

1

掙扎後,我發現如何做到這一點,在看mod_headers中的源代碼(否則它幾乎是2天在不知道的情況下不可能在文檔中找到它)

實際上,Apache給你的request_rec *r實例在處理程序中有一個非常有用的r->headers_out字段。

您可以找到 '文檔' 的位置:https://ci.apache.org/projects/httpd/trunk/doxygen/structrequest__rec.html#afecc56ea8fb015aa52477dba471a6612

r->headers_outapr_table_t這樣你就可以使用適當的功能進行修改:

/* Add header at the end of table */ 
ap_table_mergen(r->headers_out, "NameField", "value"); 
/* Overwrite value of "NameField" header or add it (if not existing) */ 
ap_table_setn(r->headers_out, "NameField", "value"); 
/* Unset header */ 
ap_table_unset(r->headers_out, "NameField"); 
相關問題