taskrambler  v0.1.8
Web server and task management solution.
auth/auth.h File Reference
#include "class.h"
#include "uuid.h"
#include "auth.h"
#include "auth/credential.h"
+ Include dependency graph for auth/auth.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define MAX_AUTH   AUTH_STORAGE
 

Enumerations

enum  AuthModule { AUTH_LDAP = 1, AUTH_STORAGE = 2 }
 

Functions

 CLASS (Auth)
 
int authCreate (Auth, AuthModule,...)
 

Detailed Description

Container for authentication modules.

This is a single point of authentication no matter how much authentication modules are in place. Thus it prevents adding more and more authentication modules to the application. This is an auth module itself but this one returns 0 if the authentication has failed otherwise the id of the successfull auth module. Thus we can identify by what method the user has been authenticated.

This can't authenticate by its own. It has to be initialized with other auth modules by calling authCreate at least once.

origin intend ... never implemented (but maybe a good idea)

Authenticatio module factory

A factory to get a specific authentication module. An authentication module is a class that implement the Auth interface.

Author
Georg Hopp

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition in file auth/auth.h.

Macro Definition Documentation

#define MAX_AUTH   AUTH_STORAGE

Definition at line 56 of file auth/auth.h.

Referenced by authAuthenticate(), authCtor(), authDtor(), and CLASS().

Enumeration Type Documentation

enum AuthModule
Enumerator
AUTH_LDAP 
AUTH_STORAGE 

Definition at line 51 of file auth/auth.h.

51  {
52  AUTH_LDAP = 1,
53  AUTH_STORAGE = 2
54 } AuthModule;
AuthModule
Definition: auth/auth.h:51

Function Documentation

int authCreate ( Auth  ,
AuthModule  ,
  ... 
)

Definition at line 33 of file auth/create.c.

References AUTH_LDAP, AUTH_STORAGE, FALSE, and newParams.

Referenced by main().

34 {
35  va_list params;
36 
37  if (NULL != this->auth[module]) {
38  delete(this->auth[module]);
39  }
40 
41  va_start(params, module);
42 
43  switch (module) {
44  case AUTH_LDAP:
45  this->auth[module] = newParams(AuthLdap, &params);
46  break;
47 
48  case AUTH_STORAGE:
49  this->auth[module] = newParams(AuthStorage, &params);
50  break;
51  }
52 
53  va_end(params);
54 
55  if (NULL == this->auth[module]) {
56  return FALSE;
57  }
58 
59  return module;
60 }
#define FALSE
Definition: commons.h:28
#define newParams(class, args)

+ Here is the caller graph for this function:

CLASS ( Auth  )

Definition at line 58 of file auth/auth.h.

References MAX_AUTH.

58  {
59  void * auth[MAX_AUTH + 1];
60 };
#define MAX_AUTH
Definition: auth/auth.h:56