Repository navigation
libunftp v0.22.0
·
16 commits
to master
since this release
Changes in this release:
- #550 Split Authenticators from the Subject Resolving (UserDetail
Providing) concern:- BREAKING: Refactored
Authenticatortrait to be non-generic and returnPrincipalinstead of a generic
User
type. This decouples authentication (verifying credentials) from user detail retrieval (obtaining full user
information). - Introduced
Principalstruct representing an authenticated user's identity (username). This is the minimal
information returned by authentication. - Introduced
UserDetailProvidertrait to convert aPrincipalinto a fullUserDetailimplementation. This
allows
authentication and user detail lookup to be separated. - Introduced
AuthenticationPipelinestruct that combines anAuthenticatorand aUserDetailProviderto provide
a
complete authentication flow. - Added
DefaultUserDetailProviderimplementation that returnsDefaultUserfor convenience. - BREAKING: Updated all
unftp-auth-*crates (unftp-auth-jsonfile,unftp-auth-pam,unftp-auth-rest) to
use
the new non-genericAuthenticatortrait. - Updated all examples and tests to use the new authentication pattern.
- BREAKING: Refactored
- #551 Let authenticators know the FTP Command channel TLS state
- #553 Introduced a new "pooled listener" mode
(.pooled_listener_mode()) for high-traffic servers.- This mode improves passive connection performance and security by pre-binding all passive ports.
- Fixed a memory leak in the passive port Switchboard (used by Pooled and Proxy modes). A new scavenger task now
cleans up expired and orphaned port reservations. - Fixed the PORT command (Active Mode) so that it now works correctly in all listener modes.
- Fixed that the EPSV command is now correctly disabled in Proxy Protocol mode where it is not (yet) supported.
- BREAKING: Removed the deprecated
Server::newandServer::with_authenticatormethods. TheServerBuilder
struct should be used instead.