mirror of
https://github.com/Mailu/Mailu.git
synced 2024-12-14 10:53:30 +02:00
4ff90683ca
1758: Implement a simpler credential cache (alternative to #1755) r=mergify[bot] a=nextgens ## What type of PR? Feature: it implements a credential cache to speedup authentication requests. ## What does this PR do? Credentials are stored in cold-storage using a slow, salted/iterated hash function to prevent offline bruteforce attacks. This creates a performance bottleneck for no valid reason (see the rationale/long version on https://github.com/Mailu/Mailu/issues/1194#issuecomment-762115549). The new credential cache makes things fast again. This is the simpler version of #1755 (with no new dependencies) ### Related issue(s) - close #1411 - close #1194 - close #1755 ## Prerequistes Before we can consider review and merge, please make sure the following list is done and checked. If an entry in not applicable, you can check it or remove it from the list. - [x] In case of feature or enhancement: documentation updated accordingly - [x] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/guide.html#changelog) entry file. 1776: optimize generation of transport nexthop r=mergify[bot] a=ghostwheel42 ## What type of PR? bug-fix and enhancement. ## What does this PR do? Possibly there should be more input validation when editing a relay, but for now this tries to make the best out of the existing "smtp" attribute while maintaining backwards compatibility. When relay is empty, the transport's nexthop is the MX of the relayed domain to fix #1588 ``` RELAY NEXTHOP TRANSPORT empty use MX of relay domain smtp:domain :port use MX of relay domain and use port smtp:domain:port target resolve A/AAAA of target smtp:[target] target:port resolve A/AAAA of target and use port smtp:[target]:port mx:target resolve MX of target smtp:target mx:target:port resolve MX of target and use port smtp:target:port lmtp:target resolve A/AAAA of target lmtp:target lmtp:target:port resolve A/AAAA of target and use port lmtp:target:port target can also be an IPv4 or IPv6 address (an IPv6 address must be enclosed in []: [2001:DB8::]). ``` When there is proper input validation and existing database entries are migrated this function can be made much shorter again. ### Related issue(s) - closes #1588 - closes #1815 ## Prerequistes Before we can consider review and merge, please make sure the following list is done and checked. If an entry in not applicable, you can check it or remove it from the list. - [x] In case of feature or enhancement: documentation updated accordingly - [X] Unless it's docs or a minor change: add [changelog](https://mailu.io/master/contributors/guide.html#changelog) entry file. Co-authored-by: Florent Daigniere <nextgens@freenetproject.org> Co-authored-by: Alexander Graf <ghostwheel42@users.noreply.github.com> |
||
---|---|---|
.. | ||
internal | ||
translations | ||
ui | ||
__init__.py | ||
configuration.py | ||
debug.py | ||
dkim.py | ||
limiter.py | ||
manage.py | ||
models.py | ||
utils.py |