]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Prevent linking and performing checks for not-configured auth methods (bug 2489)
authorFrancesco Chemolli <kinkie@squid-cache.org>
Thu, 16 Oct 2008 14:31:46 +0000 (16:31 +0200)
committerFrancesco Chemolli <kinkie@squid-cache.org>
Thu, 16 Oct 2008 14:31:46 +0000 (16:31 +0200)
src/tests/testAuth.cc
src/tests/testAuth.h

index 28de16f94a85ff2aeeaecdfa1c50811cf2dd0bb6..b2a9623c928b1bd707be0bc3c50c24321454a8db 100644 (file)
@@ -1,7 +1,7 @@
 #define SQUID_UNIT_TEST 1
 
-#include "squid.h"
 #include "testAuth.h"
+#include "squid.h"
 #include "authenticate.h"
 #include "AuthUserRequest.h"
 #include "AuthScheme.h"
 CPPUNIT_TEST_SUITE_REGISTRATION( testAuth );
 CPPUNIT_TEST_SUITE_REGISTRATION( testAuthConfig );
 CPPUNIT_TEST_SUITE_REGISTRATION( testAuthUserRequest );
+#ifdef HAVE_AUTH_MODULE_BASIC
 CPPUNIT_TEST_SUITE_REGISTRATION( testAuthBasicUserRequest );
+#endif
+#ifdef HAVE_AUTH_MODULE_DIGEST
 CPPUNIT_TEST_SUITE_REGISTRATION( testAuthDigestUserRequest );
+#endif
+#ifdef HAVE_AUTH_MODULE_NTLM
 CPPUNIT_TEST_SUITE_REGISTRATION( testAuthNTLMUserRequest );
+#endif
+#ifdef HAVE_AUTH_MODULE_NEGOTIATE
 CPPUNIT_TEST_SUITE_REGISTRATION( testAuthNegotiateUserRequest );
+#endif
 
 /* Instantiate all auth framework types */
 void
@@ -60,7 +68,8 @@ getConfig(char const *type_str)
         AuthScheme *theScheme;
 
         if ((theScheme = AuthScheme::Find(type_str)) == NULL) {
-            fatalf("Unknown authentication scheme '%s'.\n", type_str);
+            return NULL;
+            //fatalf("Unknown authentication scheme '%s'.\n", type_str);
         }
 
         config.push_back(theScheme->createConfig());
@@ -121,8 +130,16 @@ fake_auth_setup()
                {"negotiate", negotiate_parms, 1}
              };
 
-    for (unsigned scheme=0; scheme < 4; scheme++)
-        setup_scheme(getConfig(params[scheme].name), params[scheme].params, params[scheme].paramlength);
+    for (unsigned scheme=0; scheme < 4; scheme++) {
+        AuthConfig *schemeConfig;
+        schemeConfig = getConfig(params[scheme].name);
+        if (schemeConfig != NULL)
+            setup_scheme (schemeConfig, params[scheme].params, 
+                params[scheme].paramlength);
+               else
+            fprintf(stderr,"Skipping unknown authentication scheme '%s'.\n", 
+                params[scheme].name);
+    }
 
     authenticateInit(&config);
 
@@ -163,6 +180,7 @@ testAuthUserRequest::scheme()
     }
 }
 
+#ifdef HAVE_AUTH_MODULE_BASIC
 #include "auth/basic/auth_basic.h"
 /* AuthBasicUserRequest::AuthBasicUserRequest works
  */
@@ -186,7 +204,9 @@ testAuthBasicUserRequest::username()
     CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
     delete temp;
 }
+#endif /* HAVE_AUTH_MODULE_BASIC */
 
+#ifdef HAVE_AUTH_MODULE_DIGEST
 #include "auth/digest/auth_digest.h"
 /* AuthDigestUserRequest::AuthDigestUserRequest works
  */
@@ -210,7 +230,9 @@ testAuthDigestUserRequest::username()
     CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
     delete temp;
 }
+#endif /* HAVE_AUTH_MODULE_DIGEST */
 
+#ifdef HAVE_AUTH_MODULE_NTLM
 #include "auth/ntlm/auth_ntlm.h"
 /* AuthNTLMUserRequest::AuthNTLMUserRequest works
  */
@@ -234,7 +256,9 @@ testAuthNTLMUserRequest::username()
     CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
     delete temp;
 }
+#endif /* HAVE_AUTH_MODULE_NTLM */
 
+#ifdef HAVE_AUTH_MODULE_NEGOTIATE
 #include "auth/negotiate/auth_negotiate.h"
 /* AuthNegotiateUserRequest::AuthNegotiateUserRequest works
  */
@@ -258,3 +282,5 @@ testAuthNegotiateUserRequest::username()
     CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
     delete temp;
 }
+
+#endif /* HAVE_AUTH_MODULE_NEGOTIATE */
index c59b09fde2115adb2092fbb18764f9c499dbbac9..7fa7ce5c88129f60f6829d42daa9a68f7d007c88 100644 (file)
@@ -3,6 +3,7 @@
 #define SQUID_SRC_TEST_AUTH_H
 
 #include <cppunit/extensions/HelperMacros.h>
+#include "config.h"
 
 /*
  * test the auth Config framework
@@ -45,6 +46,7 @@ protected:
     void construction();
 };
 
+#ifdef HAVE_AUTH_MODULE_BASIC
 class testAuthBasicUserRequest : public CPPUNIT_NS::TestFixture
 {
     CPPUNIT_TEST_SUITE( testAuthBasicUserRequest );
@@ -58,7 +60,9 @@ protected:
     void construction();
     void username();
 };
+#endif
 
+#ifdef HAVE_AUTH_MODULE_DIGEST
 class testAuthDigestUserRequest : public CPPUNIT_NS::TestFixture
 {
     CPPUNIT_TEST_SUITE( testAuthDigestUserRequest );
@@ -72,7 +76,9 @@ protected:
     void construction();
     void username();
 };
+#endif
 
+#ifdef HAVE_AUTH_MODULE_NTLM
 class testAuthNTLMUserRequest : public CPPUNIT_NS::TestFixture
 {
     CPPUNIT_TEST_SUITE( testAuthNTLMUserRequest );
@@ -86,7 +92,9 @@ protected:
     void construction();
     void username();
 };
+#endif
 
+#ifdef HAVE_AUTH_MODULE_NEGOTIATE
 class testAuthNegotiateUserRequest : public CPPUNIT_NS::TestFixture
 {
     CPPUNIT_TEST_SUITE( testAuthNegotiateUserRequest );
@@ -100,6 +108,7 @@ protected:
     void construction();
     void username();
 };
+#endif
 
 #endif