Opened 5 years ago

Closed 5 years ago

#3260 closed bug (Fixed)

web ui reverse proxy crash

Reported by: ajslater Owned by:
Priority: minor Milestone: 2.0.3
Component: Web UI Version: 2.0.0
Keywords: reverse proxy Cc:

Description

if you access deluge web UI with a reverse proxy header it crashes

web.Server Traceback (most recent call last):
builtins.TypeError: must be str, not bytes
/usr/lib/python3/dist-packages/twisted/web/server.py:190 in process
189        try:
190            resrc = self.site.getResourceFor(self)
191            if resource._IEncodingResource.providedBy(resrc):
/usr/lib/python3/dist-packages/twisted/web/server.py:826 in getResourceFor
825        request.sitepath = copy.copy(request.prepath)
826        return resource.getChildForRequest(self.resource, request)
827
/usr/lib/python3/dist-packages/twisted/web/resource.py:98 in getChildForRequest
97        request.prepath.append(pathElement)
98        resource = resource.getChildWithDefault(pathElement, request)
99    return resource
/usr/lib/python3/dist-packages/deluge/ui/web/server.py:580 in getChildWithDefault
579        if base[0] != '/':
580            base = '/' + base
581
builtins.TypeError: must be str, not bytes

the base variable type is bytes from the header and not a string which blows up.

When you retrieve the header contents here: https://github.com/deluge-torrent/deluge/blob/develop/deluge/ui/web/server.py#L572

its returning bytes and not str. Bytes are what's what's specified in the twisted docs: https://twistedmatrix.com/documents/current/api/twisted.web.http.Request.html#getHeader

so it might be fixable with casting those bytes to a string or concatenating them another way.

This bug is new as of 2.x.x which makes sense since it looks like webui was refactored some.

Change History (3)

comment:1 by Calum, 5 years ago

Milestone: needs verified2.0.3

comment:2 by Calum, 5 years ago

Thanks for detailed report! Will fix this shortly

comment:3 by Calum, 5 years ago

Resolution: Fixed
Status: newclosed

Fixed in develop [4dd1f63b8]

Note: See TracTickets for help on using tickets.