"WSGI apps can now be easily handled with HTTP proxying tools" - a software summary in 9 words.
Furthermore, WSGIProxy is capable of serializing other variables found in the environment. For example, if a user intends to pass REMOTE_USER through, they will need to give the proxy application (WSGIProxyApp) the argument string_keys=['REMOTE_USER']. With this, the program will pass a header X-WSGIProxy-Str-1 with the value REMOTE_USER {encoded value}. In cases where the value can be defined in a header, no encoding is done, but for cases where there are special characters, base64 encoding is performed, and the value will have the prefix b64.
Also, WSGIProxy Middleware can be used to decode the encoded information. One can pass other special keys such as unicode_keys (which are UTF-encoded), json_keys (serialized with JSON), and pickle_keys (serialized with pickle). However, using pickle keys requires the user to organize trusted hosts or a signing process, and they must have shared code between the server and client since pickling uses class names to refer to many types. In most cases, JSON is a better option.
WSGIProxy software also features signature checks for added security. Both the WSGI application and middleware are configured with secret_file, which is an archive file containing a shared secret. The server adds a header X-WSGIProxy-Signature that contains the host and path of the request and an arbitrary number, plus an HMAC signature that involves the secret. This feature ensures that requests cannot leak in from outside that might use those same headers.
Additionally, the WSGIProxy Middleware provides a framework for fixing up requests that are coming from another WSGIProxy (WSGIProxyApp) server or elsewhere. This middleware is available in wsgiproxy.middleware.WSGIProxyMiddleware. Furthermore, this middleware reads all the headers set by WSGIProxyApp and enables users to force things about the request. For more information, see the class documentation for the details.
In conclusion, WSGIProxy is an excellent application for users seeking to proxy arbitrary requests to other processes. It is also easy to set up and offers a myriad of unique features like signature checks, support for special keys, adding extra headers, and serializing other variables in the environment.
Version 0.2: N/A