Better handling for remote-user duplicate header.
authorScott Cantor <cantor.2@osu.edu>
Tue, 9 Sep 2008 14:21:10 +0000 (14:21 +0000)
committerScott Cantor <cantor.2@osu.edu>
Tue, 9 Sep 2008 14:21:10 +0000 (14:21 +0000)
nsapi_shib/nsapi_shib.cpp

index 38b87b4..1c9394d 100644 (file)
@@ -281,6 +281,7 @@ public:
             throw SAMLException("Attempt to spoof header ($1) was detected.", params(1, name.c_str()));
         param_free(pblock_remove("auth-user",m_rq->vars));
         param_free(pblock_remove("remote-user",m_rq->headers));
+        pblock_nvinsert("remote-user", g_unsetHeaderValue.c_str(), m_rq->headers);
     }
     else {
         if (g_checkSpoofing && m_firsttime && !m_rq->orig_rq) {
@@ -315,6 +316,7 @@ public:
     return string(hdr ? hdr : "");
   }
   virtual void setRemoteUser(const string &user) {
+    param_free(pblock_remove("remote-user",m_rq->headers));
     pblock_nvinsert("remote-user", user.c_str(), m_rq->headers);
     pblock_nvinsert("auth-user", user.c_str(), m_rq->vars);
   }