[cpp-sp COMMIT] /branches/REL_2/apache/mod_apache.cpp

noreply at shibboleth.net noreply at shibboleth.net
Thu Mar 22 03:27:16 GMT 2012


Author: scantor
Date: Thu Mar 22 03:27:16 2012
New Revision: 3598

URL: http://svn.shibboleth.net/view/cpp-sp?rev=3598&view=rev
Log:
Fixes to 2.4 module

Modified:
    branches/REL_2/apache/mod_apache.cpp

Modified: branches/REL_2/apache/mod_apache.cpp
URL: http://svn.shibboleth.net/view/cpp-sp/branches/REL_2/apache/mod_apache.cpp?rev=3598&r1=3597&r2=3598&view=diff
==============================================================================
--- branches/REL_2/apache/mod_apache.cpp (original)
+++ branches/REL_2/apache/mod_apache.cpp Thu Mar 22 03:27:16 2012
@@ -1515,15 +1515,15 @@
     shib_request_config* rc = (shib_request_config*)ap_get_module_config(r->request_config, &mod_shib);
     if (!rc || !rc->sta) {
         ap_log_rerror(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, SH_AP_R(r), "shib_base_check_authz found no per-request structure");
-        return make_pair(nullptr, AUTHZ_GENERAL_ERROR);
+        return make_pair((ShibTargetApache*)nullptr, AUTHZ_GENERAL_ERROR);
     }
     else if (!rc->sta->isInitialized()) {
-        return make_pair(nullptr, AUTHZ_DENIED_NO_USER);
+        return make_pair((ShibTargetApache*)nullptr, AUTHZ_DENIED_NO_USER);
     }
     return make_pair(rc->sta, AUTHZ_GRANTED);
 }
 
-extern "C" static authz_status shib_shibboleth_check_authz(request_rec* r, const char* require_line, const void*)
+extern "C" authz_status shib_shibboleth_check_authz(request_rec* r, const char* require_line, const void*)
 {
     pair<ShibTargetApache*,authz_status> sta = shib_base_check_authz(r);
     if (!sta.first)
@@ -1531,7 +1531,7 @@
     return AUTHZ_GRANTED;
 }
 
-extern "C" static authz_status shib_validuser_check_authz(request_rec* r, const char* require_line, const void*)
+extern "C" authz_status shib_validuser_check_authz(request_rec* r, const char* require_line, const void*)
 {
     pair<ShibTargetApache*,authz_status> sta = shib_base_check_authz(r);
     if (!sta.first)
@@ -1551,9 +1551,9 @@
     return AUTHZ_DENIED_NO_USER;
 }
 
-extern "C" static authz_status shib_user_check_authz(request_rec* r, const char* require_line, const void*)
-{
-    if (!r->user)
+extern "C" authz_status shib_user_check_authz(request_rec* r, const char* require_line, const void*)
+{
+    if (!r->user || !*(r->user))
         return AUTHZ_DENIED_NO_USER;
     pair<ShibTargetApache*,authz_status> sta = shib_base_check_authz(r);
     if (!sta.first)
@@ -1565,7 +1565,7 @@
     return AUTHZ_DENIED;
 }
 
-extern "C" static authz_status shib_acclass_check_authz(request_rec* r, const char* require_line, const void*)
+extern "C" authz_status shib_acclass_check_authz(request_rec* r, const char* require_line, const void*)
 {
     pair<ShibTargetApache*,authz_status> sta = shib_base_check_authz(r);
     if (!sta.first)
@@ -1577,7 +1577,7 @@
         const Session* session = sta.first->getSession(false);
         if (session && hta.doAuthnContext(*sta.first, session->getAuthnContextClassRef(), require_line) == AccessControl::shib_acl_true)
             return AUTHZ_GRANTED;
-        return AUTHZ_DENIED;
+        return session ? AUTHZ_DENIED : AUTHZ_DENIED_NO_USER;
     }
     catch (std::exception& e) {
         sta.first->log(SPRequest::SPWarn, string("htaccess: unable to obtain session for access control check: ") +  e.what());
@@ -1586,7 +1586,7 @@
     return AUTHZ_GENERAL_ERROR;
 }
 
-extern "C" static authz_status shib_acdecl_check_authz(request_rec* r, const char* require_line, const void*)
+extern "C" authz_status shib_acdecl_check_authz(request_rec* r, const char* require_line, const void*)
 {
     pair<ShibTargetApache*,authz_status> sta = shib_base_check_authz(r);
     if (!sta.first)
@@ -1598,7 +1598,7 @@
         const Session* session = sta.first->getSession(false);
         if (session && hta.doAuthnContext(*sta.first, session->getAuthnContextDeclRef(), require_line) == AccessControl::shib_acl_true)
             return AUTHZ_GRANTED;
-        return AUTHZ_DENIED;
+        return session ? AUTHZ_DENIED : AUTHZ_DENIED_NO_USER;
     }
     catch (std::exception& e) {
         sta.first->log(SPRequest::SPWarn, string("htaccess: unable to obtain session for access control check: ") +  e.what());
@@ -1607,7 +1607,7 @@
     return AUTHZ_GENERAL_ERROR;
 }
 
-extern "C" static authz_status shib_attr_check_authz(request_rec* r, const char* require_line, const void*)
+extern "C" authz_status shib_attr_check_authz(request_rec* r, const char* require_line, const void*)
 {
     pair<ShibTargetApache*,authz_status> sta = shib_base_check_authz(r);
     if (!sta.first)
@@ -1622,7 +1622,7 @@
             if (rule && hta.doShibAttr(*sta.first, session, rule, require_line) == AccessControl::shib_acl_true)
                 return AUTHZ_GRANTED;
         }
-        return AUTHZ_DENIED;
+        return session ? AUTHZ_DENIED : AUTHZ_DENIED_NO_USER;
     }
     catch (std::exception& e) {
         sta.first->log(SPRequest::SPWarn, string("htaccess: unable to obtain session for access control check: ") +  e.what());
@@ -1631,7 +1631,7 @@
     return AUTHZ_GENERAL_ERROR;
 }
 

[... 36 lines stripped ...]


More information about the commits mailing list