Enabling Apache basic auth to work with proxied apps

Recently, I needed to make some changes to a Sinatra based app to support multiple users. I already had basic auth set up, but it wasn't being passed to the unicorn-based Sinatra app that was being proxied behind Apache. Here's what I did.

First, make sure that you have the headers module set up. Then, in your ProxyPass section, add the following:

 
RewriteEngine On
RewriteCond %{REMOTE_USER} (.+)
RewriteRule . - [E=RU:%1]
RequestHeader set REMOTE_USER %{RU}e
 

Then in your Sinatra app, you just need to fetch the username from request['HTTP_REMOTE_USER']

Problem solved.