This release contains BREAKING CHANGES!
- Improve configuration:
(See details)- Rename some options, e.g.
acceptDigest
=>http_authenticator.accept_digest
- WsgiDAVApp constructor now assumes default settings. The passed options
override those. - Log format is configurable
- Remove option
dir_browser.enabled
(modifymiddleware_stack
instead) - CLI supports
--server=gevent
(gevent must be installed separately) - SSL paths are evaluated relative to the config file, if any
- Refactor middleware stack
- RequestResolver and WsgiDavDirBrowser are now simple members of
middleware_stack
and not specially treated middleware_stack
entries can also be strings or dicts that are
evaluated to import and instantiate middleware classes. This allows to
define and configure external middleware in YAML and JSON config files.
- RequestResolver and WsgiDavDirBrowser are now simple members of
- provider_mapping option now supports configuration of custom providers
- Windows XP (Microsoft-WebDAV-MiniRedir/5.1.2600) had a bug
when accessing a share '/dav/': XP sometimes sends digests for '/'.
In v.2.4 a hotfix was also accept '/' instead of the real share.
This is now disabled by default, but can be re-enabled with
hotfixes.winxp_accept_root_share_login: true.
- Rename some options, e.g.
- Refactor code base:
- Rename methods according to PEP 8, e.g.
provider.getResourceInst()
=>provider.get_resource_inst()
. - Rename methods arguments according to PEP 8, e.g.
provider.set_last_modified(self, destPath, timeStamp, dryRun)
=>provider.set_last_modified(self, dest_path, time_stamp, dry_run)
- Enforce Black code style
- Move some modules to separate packages
- Use utf-8 directive in source files (-- coding: utf-8 --)
- Rename methods according to PEP 8, e.g.
- Refactor domain_controller and authentication:
- Renamed environ["http_authenticator.realm"], environ["http_authenticator.user_name"]
=> environ["wsgidav.auth.realm"], environ["wsgidav.auth.user_name"] - DC may define environ["wsgidav.auth.roles"] and environ["wsgidav.auth.permissions"]
- A common base class simplifies implementation of custom DCs.
- New PAMDomainController
allows to authenticate system users on Linux and macOS, for example. - Digest hash generation is now delegated to DomainControllers. This allows
to implement DomainControllers that support digest access authentication
even if plain-text passwords are not accessible, but stored hashes are. - Every domain controller now has a config section of its own. E.g.
theuser_mapping
option forSimpleDomainController
was moved to
simple_dc.user_mapping
.
- Renamed environ["http_authenticator.realm"], environ["http_authenticator.user_name"]
SimpleDomainController
no longer allows anonymous access by default.
It is now required to passsimple_dc.user_mapping: "share1": True
.
Also a new pseudo-share"*"
can be used to define defaults.
A new command line option--auth
allows quick-configuration of DCs- Refactor WsgiDirBrowser:
- Use Jinja2 and load static assets through own WsgiDAV provider
- Move to
wsgidav.dir_browser
package - Option 'dir_browser.ms_sharepoint_support' replaces ms_sharepoint_plugin and ms_sharepoint_urls
- Automated Docker builds
- MSI installer
- uses Cheroot/6.4 Python 3.6
- Includes NTDomainController
- #112: Added limited support for Microsoft's Win32LastModified property.
- Fix #123: HEAD request on DirBrowser folder
- Fix #141: issue when 'sys.stdout' is none