https://issues.shibboleth.net/jira/browse/SSPCPP-129
authorScott Cantor <cantor.2@osu.edu>
Thu, 7 Aug 2008 15:37:23 +0000 (15:37 +0000)
committerScott Cantor <cantor.2@osu.edu>
Thu, 7 Aug 2008 15:37:23 +0000 (15:37 +0000)
fastcgi/shibauthorizer.cpp

index 4661ee8..db51ad1 100644 (file)
@@ -133,11 +133,20 @@ public:
             m_request_headers.erase(name);\r
     }\r
     virtual string getHeader(const char* name) const {\r
+        // Look in the local map first.\r
         map<string,string>::const_iterator i = m_request_headers.find(name);\r
         if (i != m_request_headers.end())\r
             return i->second;\r
-        else\r
-            return "";\r
+        // Nothing set locally, so try the request.\r
+        string hdr("HTTP_");\r
+        for (; *name; ++name) {\r
+            if (*name=='-')\r
+                hdr += '_';\r
+            else\r
+                hdr += toupper(*name);\r
+        }\r
+        char* s = FCGX_GetParam(hdr.c_str(), m_req->envp);\r
+        return s ? s : "";\r
     }\r
     void setRemoteUser(const char* user) {\r
         if (user)\r