From: Vsevolod Stakhov Date: Mon, 18 Feb 2019 20:07:30 +0000 (+0000) Subject: [Test] Add test for http headers signing X-Git-Tag: 1.9.0~122 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=12a9552a9ca7490ed8c4c53a78c2e3e580076cdc;p=thirdparty%2Frspamd.git [Test] Add test for http headers signing --- diff --git a/lualib/lua_dkim_tools.lua b/lualib/lua_dkim_tools.lua index ec2dbd306e..7d237a3269 100644 --- a/lualib/lua_dkim_tools.lua +++ b/lualib/lua_dkim_tools.lua @@ -120,7 +120,13 @@ local function prepare_dkim_signing(N, task, settings) local is_local, is_sign_networks if settings.use_http_headers then - return parse_dkim_http_headers(N, task, settings) + local res,tbl = parse_dkim_http_headers(N, task, settings) + + if not res and settings.allow_headers_fallback then + return res,{} + else + lua_util.debugm(N, task, 'failed to read http headers, fallback to normal schema') + end end local auser = task:get_user() diff --git a/test/functional/cases/131_dkim_signing/001_simple.robot b/test/functional/cases/131_dkim_signing/001_simple.robot index 96bdcc997a..286fa87165 100644 --- a/test/functional/cases/131_dkim_signing/001_simple.robot +++ b/test/functional/cases/131_dkim_signing/001_simple.robot @@ -19,6 +19,11 @@ TEST SIGNED Check Rspamc ${result} DKIM-Signature: Should Contain ${result.stdout} DKIM_SIGNED +TEST SIGNED HTTP HEADERS + ${result} = Scan Message With Rspamc ${MESSAGE} -u bob@example.com --header="PerformDkimSign=yes" --header="DkimDomain=example.com" --header="DkimSelector=test" --header="DkimPrivateKey=MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANe3EETkiI1Exyrb+VzbMSt90K8MXJA0GcyNs6MFCs9JPaTh90Zu2l7ki7m5LTUx6350AR/3hcvwjSHCZjD6fvQ8/zfjN8kaLZ6DAaqtqSlpawIM+8glkuTEkIkpBED/OtDrba4Rd29iLFVuwQZXDtTjAAZKZPmtTZ5TXLrcCU6VAgMBAAECgYEA1BFvmBsIN8Gu/+6kNupya2xUNVM0yLu/xT5lpNV3LBO325oejAq8+d87kkl/LTW3a2jGFlQ0ICuLw+2mo24QUWRyv8if3oeBMlnLqHE+6wNjFVqo5sOjKzjO363xSXwXNUrBT7jDhnZcDN8w3/FecYKjifGTVtUs1SLsYwhlc8ECQQDuCRymLZQ/imPn5eFVIydwUzg8ptZlvoA7bfIxUL9BQRX33s59kLCilA0tTed8Dd+GnxsT93XOj1ApIfBwmTSlAkEA5/63PDsN7fH+WInqVD8nU07M9S8LcGDlPbVVBr2S2I78/iwrSDAYtbkU2vEbhFK/JuKNML2j8OkzV3v1QulfMQJBALDzhx+l/HHr3+8RPhx7QKNIyiKUaAdEwbDsP8IXY8YPq1QThu9jM1v4sX7/TdkzuvoppwiFykbe1NlvCH279p0CQCmTg4Ee0DtBcCSr6rvYaZLLf329RZ6JLuwlMCy6ErQOxBZFEiiovfTrS2qFZToMnkc4uLbwdY36LQJTq7unGTECQCCok8LzBeZtAw+TJofpOM3F2Rlm2qXiBVBeubhRedsiljG0hpvvLJBMppnQ6r27p5Jk39SmaTRkxEKrxPWWLNM=" + Check Rspamc ${result} DKIM-Signature: + Should Contain ${result.stdout} DKIM_SIGNED + TEST NOT SIGNED - USERNAME WRONG DOMAIN ${result} = Scan Message With Rspamc ${MESSAGE} -u bob@example.tk Check Rspamc ${result} DKIM-Signature: inverse=1 diff --git a/test/functional/configs/dkim_signing/simple.conf b/test/functional/configs/dkim_signing/simple.conf index 2302a0c4f2..14b8d5ec69 100644 --- a/test/functional/configs/dkim_signing/simple.conf +++ b/test/functional/configs/dkim_signing/simple.conf @@ -2,4 +2,6 @@ dkim_signing { path = "${TESTDIR}/configs/dkim.key"; check_pubkey = true; allow_pubkey_mismatch = false; + use_http_headers = true; + allow_headers_fallback = true; }