summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Rohmann <christian.rohmann@inovex.de>2022-01-20 15:20:35 +0100
committerMichael Johnson <johnsomor@gmail.com>2022-06-02 03:55:48 +0000
commit0b818283fd5a676fda6c42a0a1d37723fb170e34 (patch)
treecac81719b17e0b9f1372b2a64ad9dad864309f55
parente3d7854b07f080dbd0f35021034d83d98e79d21a (diff)
downloaddesignate-0b818283fd5a676fda6c42a0a1d37723fb170e34.tar.gz
Allow email subadresses to be used within mail url of CAA records
This patch allows for +subaddress to be used for the local part of mail urls used for CAA records. While there are more characters allowed in email addresses, using subadresses for incoming email to role accounts is quite common. Closes-Bug: 1958533 Change-Id: Id265fa1dfa5c0703d8e95b5de1334d4ca716fbc0 (cherry picked from commit 1cef20edbc462fab75a919fc0de796c2d6edb30b)
-rw-r--r--designate/objects/fields.py2
-rw-r--r--designate/tests/unit/objects/test_caa_object.py7
-rw-r--r--releasenotes/notes/bug-1958533-allow-caa-mail-subaddr-d02cdc46bbb118ad.yaml10
3 files changed, 18 insertions, 1 deletions
diff --git a/designate/objects/fields.py b/designate/objects/fields.py
index dd3268c8..13b7168b 100644
--- a/designate/objects/fields.py
+++ b/designate/objects/fields.py
@@ -100,7 +100,7 @@ class StringFields(ovoo_fields.StringField):
RE_NAPTR_SERVICE = r'^([A-Za-z]([A-Za-z0-9]*)(\+[A-Za-z]([A-Za-z0-9]{0,31}))*)?' # noqa
RE_NAPTR_REGEXP = r'^([^0-9i\\])(.*)\1((.+)|(\\[1-9]))\1(i?)'
RE_KVP = r'^\s[A-Za-z0-9]+=[A-Za-z0-9]+'
- RE_URL_MAIL = r'^mailto:[A-Za-z0-9_\-]+@.*'
+ RE_URL_MAIL = r'^mailto:[A-Za-z0-9_\-]+(\+[A-Za-z0-9_\-]+)?@.*'
RE_URL_HTTP = r'^http(s)?://.*/'
RE_CERT_TYPE = r'(^[A-Z]+$)|(^[0-9]+$)'
RE_CERT_ALGO = r'(^[A-Z]+[A-Z0-9\-]+[A-Z0-9]$)|(^[0-9]+$)'
diff --git a/designate/tests/unit/objects/test_caa_object.py b/designate/tests/unit/objects/test_caa_object.py
index 877ffb25..b6b0b070 100644
--- a/designate/tests/unit/objects/test_caa_object.py
+++ b/designate/tests/unit/objects/test_caa_object.py
@@ -50,6 +50,13 @@ class CAARecordTest(oslotest.base.BaseTestCase):
self.assertEqual(0, caa_record.flags)
self.assertEqual('iodef mailto:security@example.net', caa_record.prpt)
+ caa_record = objects.CAA()
+ caa_record._from_string('0 iodef mailto:security+caa@example.net')
+
+ self.assertEqual(0, caa_record.flags)
+ self.assertEqual('iodef mailto:security+caa@example.net',
+ caa_record.prpt)
+
def test_parse_caa_invalid(self):
caa_record = objects.CAA()
self.assertRaisesRegex(
diff --git a/releasenotes/notes/bug-1958533-allow-caa-mail-subaddr-d02cdc46bbb118ad.yaml b/releasenotes/notes/bug-1958533-allow-caa-mail-subaddr-d02cdc46bbb118ad.yaml
new file mode 100644
index 00000000..694d0d2f
--- /dev/null
+++ b/releasenotes/notes/bug-1958533-allow-caa-mail-subaddr-d02cdc46bbb118ad.yaml
@@ -0,0 +1,10 @@
+---
+fixes:
+ - |
+ CAA records now allow the use of `+` prefixed subadresses like
+ `security+caa@example.net` within mail urls.
+ (https://www.rfc-editor.org/rfc/rfc5233.html#section-1)
+
+ See `bug 1958533`_ for more information.
+
+ .. _bug 1958533: https://bugs.launchpad.net/designate/+bug/1958533