""" __docformat__ = "reStructuredText" import random import base64 try: from hashlib import md5 except ImportError: from md5 import md5 import time import re import util from domain_controller import WsgiDAVDomainController from middleware import BaseMiddleware _logger = util.getModuleLogger(__name__, True) # HOTFIX for Windows XP (Microsoft-WebDAV-MiniRedir/5.1.2600): # When accessing a share '/dav/', XP sometimes sends digests for '/'. # With this fix turned on, we allow '/' digests, when a matching '/dav' account # is present. HOTFIX_WINXP_AcceptRootShareLogin = True # HOTFIX for Windows # MW 2013-12-31: DON'T set this (will MS office to use anonymous always in some scenarios) HOTFIX_WIN_AcceptAnonymousOptions = False class SimpleDomainController(object): """SimpleDomainController : Simple domain controller for HTTPAuthenticator.""" def __init__(self, dictusers = None, realmname = "SimpleDomain"):
WSGI middleware to catch application thrown DAVErrors and return proper responses. See `Developers info`_ for more information about the WsgiDAV architecture. .. _`Developers info`: http://wsgidav.readthedocs.org/en/latest/develop.html """ __docformat__ = "reStructuredText" import util from dav_error import DAVError, getHttpStatusString, asDAVError,\ HTTP_INTERNAL_ERROR, HTTP_NOT_MODIFIED, HTTP_NO_CONTENT import traceback import sys _logger = util.getModuleLogger(__name__) #=============================================================================== # ErrorPrinter #=============================================================================== class ErrorPrinter(object): def __init__(self, application, catchall=False): self._application = application self._catch_all_exceptions = catchall def __call__(self, environ, start_response): # Intercept start_response sub_app_start_response = util.SubAppStartResponse() try: