#define SQUID_UNIT_TEST 1
-#include "squid.h"
+#include "squid-old.h"
+
+#if USE_AUTH
+
#include "testAuth.h"
-#include "authenticate.h"
-#include "AuthUserRequest.h"
-#include "AuthScheme.h"
-#include "AuthConfig.h"
+#include "auth/Gadgets.h"
+#include "auth/UserRequest.h"
+#include "auth/Scheme.h"
+#include "auth/Config.h"
#include "Mem.h"
CPPUNIT_TEST_SUITE_REGISTRATION( testAuth );
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthConfig );
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthUserRequest );
+#if HAVE_AUTH_MODULE_BASIC
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthBasicUserRequest );
+#endif
+#if HAVE_AUTH_MODULE_DIGEST
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthDigestUserRequest );
+#endif
+#if HAVE_AUTH_MODULE_NTLM
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthNTLMUserRequest );
+#endif
+#if HAVE_AUTH_MODULE_NEGOTIATE
CPPUNIT_TEST_SUITE_REGISTRATION( testAuthNegotiateUserRequest );
+#endif
/* Instantiate all auth framework types */
void
{
char const * proxy_auths[][2]= { {"basic","Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="},
- {"digest", "Digest username=\"robertdig\", realm=\"Squid proxy-caching web server\", nonce=\"yy8rQXjEWwixXVBj\", uri=\"/images/bg8.gif\", response=\"f75a7d3edd48d93c681c75dc4fb58700\", qop=auth, nc=00000012, cnonce=\"e2216641961e228e\" "},
- {"ntlm", "NTLM "},
- {"negotiate", "Negotiate "}
- };
+ {"digest", "Digest username=\"robertdig\", realm=\"Squid proxy-caching web server\", nonce=\"yy8rQXjEWwixXVBj\", uri=\"/images/bg8.gif\", response=\"f75a7d3edd48d93c681c75dc4fb58700\", qop=auth, nc=00000012, cnonce=\"e2216641961e228e\" "},
+ {"ntlm", "NTLM "},
+ {"negotiate", "Negotiate "}
+ };
for (unsigned count = 0; count < 4 ; count++) {
if (strcasecmp(type, proxy_auths[count][0]) == 0)
}
static
-AuthConfig *
+Auth::Config *
getConfig(char const *type_str)
{
- Vector<AuthConfig *> &config = Config.authConfiguration;
+ Auth::ConfigVector &config = Auth::TheConfig;
/* find a configuration for the scheme */
- AuthConfig *scheme = AuthConfig::Find (type_str);
+ Auth::Config *scheme = Auth::Config::Find(type_str);
if (scheme == NULL) {
/* Create a configuration */
- AuthScheme *theScheme;
+ Auth::Scheme::Pointer theScheme = Auth::Scheme::Find(type_str);
- if ((theScheme = AuthScheme::Find(type_str)) == NULL) {
- fatalf("Unknown authentication scheme '%s'.\n", type_str);
+ if (theScheme == NULL) {
+ return NULL;
+ //fatalf("Unknown authentication scheme '%s'.\n", type_str);
}
config.push_back(theScheme->createConfig());
scheme = config.back();
- assert (scheme);
+ assert(scheme);
}
return scheme;
static
void
-setup_scheme(AuthConfig *scheme, char const **params, unsigned param_count)
+setup_scheme(Auth::Config *scheme, char const **params, unsigned param_count)
{
- Vector<AuthConfig *> &config = Config.authConfiguration;
+ Auth::ConfigVector &config = Auth::TheConfig;
for (unsigned position=0; position < param_count; position++) {
char *param_str=xstrdup(params[position]);
Mem::Init();
- Vector<AuthConfig *> &config = Config.authConfiguration;
+ Auth::ConfigVector &config = Auth::TheConfig;
char const *digest_parms[]= {"program /home/robertc/install/squid/libexec/digest_pw_auth /home/robertc/install/squid/etc/digest.pwd",
"realm foo"
}
params[]={ {"digest", digest_parms, 2},
- {"basic", basic_parms, 2},
- {"ntlm", ntlm_parms, 1},
- {"negotiate", negotiate_parms, 1}
- };
-
- for (unsigned scheme=0; scheme < 4; scheme++)
- setup_scheme(getConfig(params[scheme].name), params[scheme].params, params[scheme].paramlength);
+ {"basic", basic_parms, 2},
+ {"ntlm", ntlm_parms, 1},
+ {"negotiate", negotiate_parms, 1}
+ };
+
+ for (unsigned scheme=0; scheme < 4; scheme++) {
+ Auth::Config *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);
setup=true;
}
-/* AuthConfig::CreateAuthUser works for all
+/* Auth::Config::CreateAuthUser works for all
* authentication types
*/
void
Debug::Levels[29]=9;
fake_auth_setup();
- for (AuthScheme::const_iterator i = AuthScheme::Schemes().begin(); i != AuthScheme::Schemes().end(); ++i) {
- AuthUserRequest *authRequest = AuthConfig::CreateAuthUser(find_proxy_auth((*i)->type()));
+ for (Auth::Scheme::iterator i = Auth::Scheme::GetSchemes().begin(); i != Auth::Scheme::GetSchemes().end(); ++i) {
+ AuthUserRequest::Pointer authRequest = Auth::Config::CreateAuthUser(find_proxy_auth((*i)->type()));
CPPUNIT_ASSERT(authRequest != NULL);
}
}
+#if HAVE_IOSTREAM
#include <iostream>
+#endif
/* AuthUserRequest::scheme returns the correct scheme for all
* authentication types
Debug::Levels[29]=9;
fake_auth_setup();
- for (AuthScheme::const_iterator i = AuthScheme::Schemes().begin(); i != AuthScheme::Schemes().end(); ++i) {
+ for (Auth::Scheme::iterator i = Auth::Scheme::GetSchemes().begin(); i != Auth::Scheme::GetSchemes().end(); ++i) {
// create a user request
// check its scheme matches *i
- AuthUserRequest *authRequest = AuthConfig::CreateAuthUser(find_proxy_auth((*i)->type()));
+ AuthUserRequest::Pointer authRequest = Auth::Config::CreateAuthUser(find_proxy_auth((*i)->type()));
CPPUNIT_ASSERT_EQUAL(authRequest->scheme(), *i);
}
}
-#include "auth/basic/auth_basic.h"
+#if HAVE_AUTH_MODULE_BASIC
+#include "auth/basic/User.h"
+#include "auth/basic/UserRequest.h"
/* AuthBasicUserRequest::AuthBasicUserRequest works
*/
void
void
testAuthBasicUserRequest::username()
{
- AuthBasicUserRequest();
- AuthBasicUserRequest *temp=new AuthBasicUserRequest();
- BasicUser *basic_auth=new BasicUser(AuthConfig::Find("basic"));
+ AuthUserRequest::Pointer temp = new AuthBasicUserRequest();
+ Auth::Basic::User *basic_auth=new Auth::Basic::User(Auth::Config::Find("basic"));
basic_auth->username("John");
temp->user(basic_auth);
- basic_auth->addRequest(temp);
CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
- delete temp;
}
+#endif /* HAVE_AUTH_MODULE_BASIC */
-#include "auth/digest/auth_digest.h"
+#if HAVE_AUTH_MODULE_DIGEST
+#include "auth/digest/User.h"
+#include "auth/digest/UserRequest.h"
/* AuthDigestUserRequest::AuthDigestUserRequest works
*/
void
void
testAuthDigestUserRequest::username()
{
- AuthDigestUserRequest();
- AuthDigestUserRequest *temp=new AuthDigestUserRequest();
- DigestUser *user=new DigestUser(AuthConfig::Find("digest"));
- user->username("John");
- temp->user(user);
- user->addRequest(temp);
+ AuthUserRequest::Pointer temp = new AuthDigestUserRequest();
+ Auth::Digest::User *duser=new Auth::Digest::User(Auth::Config::Find("digest"));
+ duser->username("John");
+ temp->user(duser);
CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
- delete temp;
}
+#endif /* HAVE_AUTH_MODULE_DIGEST */
-#include "auth/ntlm/auth_ntlm.h"
+#if HAVE_AUTH_MODULE_NTLM
+#include "auth/ntlm/User.h"
+#include "auth/ntlm/UserRequest.h"
/* AuthNTLMUserRequest::AuthNTLMUserRequest works
*/
void
void
testAuthNTLMUserRequest::username()
{
- AuthNTLMUserRequest();
- AuthNTLMUserRequest *temp=new AuthNTLMUserRequest();
- NTLMUser *user=new NTLMUser(AuthConfig::Find("ntlm"));
- user->username("John");
- temp->user(user);
- user->addRequest(temp);
+ AuthUserRequest::Pointer temp = new AuthNTLMUserRequest();
+ Auth::Ntlm::User *nuser=new Auth::Ntlm::User(Auth::Config::Find("ntlm"));
+ nuser->username("John");
+ temp->user(nuser);
CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
- delete temp;
}
+#endif /* HAVE_AUTH_MODULE_NTLM */
-#include "auth/negotiate/auth_negotiate.h"
+#if HAVE_AUTH_MODULE_NEGOTIATE
+#include "auth/negotiate/User.h"
+#include "auth/negotiate/UserRequest.h"
/* AuthNegotiateUserRequest::AuthNegotiateUserRequest works
*/
void
void
testAuthNegotiateUserRequest::username()
{
- AuthNegotiateUserRequest();
- AuthNegotiateUserRequest *temp=new AuthNegotiateUserRequest();
- NegotiateUser *user=new NegotiateUser(AuthConfig::Find("negotiate"));
- user->username("John");
- temp->user(user);
- user->addRequest(temp);
+ AuthUserRequest::Pointer temp = new AuthNegotiateUserRequest();
+ Auth::Negotiate::User *nuser=new Auth::Negotiate::User(Auth::Config::Find("negotiate"));
+ nuser->username("John");
+ temp->user(nuser);
CPPUNIT_ASSERT_EQUAL(0, strcmp("John", temp->username()));
- delete temp;
}
+
+#endif /* HAVE_AUTH_MODULE_NEGOTIATE */
+#endif /* USE_AUTH */