dp.cx blog

Posted on

Filed under

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 OnRewriteCond %{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.