예제 #1
0
"""
__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"):
예제 #2
0
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: