Mercurial > prosody-modules
comparison mod_s2s_auth_samecert/mod_s2s_auth_samecert.lua @ 4675:c9397cd5cfe6
mod_s2s_auth_samecert: Handle lack of provided client certificate
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 10 Sep 2021 20:15:19 +0200 |
| parents | 3024116d6093 |
| children |
comparison
equal
deleted
inserted
replaced
| 4674:1b701f208b1b | 4675:c9397cd5cfe6 |
|---|---|
| 2 | 2 |
| 3 local hosts = prosody.hosts; | 3 local hosts = prosody.hosts; |
| 4 | 4 |
| 5 module:hook("s2s-check-certificate", function(event) | 5 module:hook("s2s-check-certificate", function(event) |
| 6 local session, cert = event.session, event.cert; | 6 local session, cert = event.session, event.cert; |
| 7 if session.direction ~= "incoming" then return end | 7 if not cert or session.direction ~= "incoming" then return end |
| 8 | 8 |
| 9 local outgoing = hosts[session.to_host].s2sout[session.from_host]; | 9 local outgoing = hosts[session.to_host].s2sout[session.from_host]; |
| 10 if outgoing and outgoing.type == "s2sout" and outgoing.secure and outgoing.conn:socket():getpeercertificate():pem() == cert:pem() then | 10 if outgoing and outgoing.type == "s2sout" and outgoing.secure and outgoing.conn:socket():getpeercertificate():pem() == cert:pem() then |
| 11 session.log("debug", "Certificate matches that of s2sout%s", tostring(outgoing):match("[a-f0-9]+$")); | 11 session.log("debug", "Certificate matches that of s2sout%s", tostring(outgoing):match("[a-f0-9]+$")); |
| 12 session.cert_identity_status = outgoing.cert_identity_status; | 12 session.cert_identity_status = outgoing.cert_identity_status; |
| 13 session.cert_chain_status = outgoing.cert_chain_status; | 13 session.cert_chain_status = outgoing.cert_chain_status; |
