diff --git a/swift/obj/server.py b/swift/obj/server.py index b9c8616124..8967684b35 100644 --- a/swift/obj/server.py +++ b/swift/obj/server.py @@ -1034,8 +1034,7 @@ class ObjectController(BaseStorageServer): if req.method not in self.allowed_methods: res = HTTPMethodNotAllowed() else: - method = getattr(self, req.method) - res = method(req) + res = getattr(self, req.method)(req) except DiskFileCollision: res = HTTPForbidden(request=req) except HTTPException as error_response: diff --git a/swift/proxy/server.py b/swift/proxy/server.py index 99b99afd54..9b89498c53 100644 --- a/swift/proxy/server.py +++ b/swift/proxy/server.py @@ -383,11 +383,11 @@ class Application(object): controller.trans_id = req.environ['swift.trans_id'] self.logger.client_ip = get_remote_client(req) - handler = getattr(controller, req.method, None) - if not getattr(handler, 'publicly_accessible', False): - allowed_methods = getattr(controller, 'allowed_methods', set()) - return HTTPMethodNotAllowed( - request=req, headers={'Allow': ', '.join(allowed_methods)}) + if req.method not in controller.allowed_methods: + return HTTPMethodNotAllowed(request=req, headers={ + 'Allow': ', '.join(controller.allowed_methods)}) + handler = getattr(controller, req.method) + old_authorize = None if 'swift.authorize' in req.environ: # We call authorize before the handler, always. If authorized,