ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
class.ilAuthProviderFactory.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
4
12{
13 private $logger = null;
14
15
19 public function __construct()
20 {
21 $this->logger = ilLoggerFactory::getLogger('auth');
22 }
23
28 public function getLogger()
29 {
30 return $this->logger;
31 }
32
37 public function getProviders(ilAuthCredentials $credentials)
38 {
39 // Fixed provider selection;
40 if (strlen($credentials->getAuthMode())) {
41 $this->getLogger()->debug('Returning fixed provider for auth mode: ' . $credentials->getAuthMode());
42 return array(
43 $this->getProviderByAuthMode($credentials, $credentials->getAuthMode())
44 );
45 }
46
47 include_once './Services/Authentication/classes/class.ilAuthModeDetermination.php';
48 $auth_determination = ilAuthModeDetermination::_getInstance();
49 $sequence = $auth_determination->getAuthModeSequence($credentials->getUsername());
50
51 $providers = array();
52 foreach ((array) $sequence as $position => $authmode) {
53 $provider = $this->getProviderByAuthMode($credentials, $authmode);
54 if ($provider instanceof ilAuthProviderInterface) {
55 $providers[] = $provider;
56 }
57 }
58 return $providers;
59 }
60
65 public function getProviderByAuthMode(ilAuthCredentials $credentials, $a_authmode)
66 {
67 switch ((int) $a_authmode) {
68 case AUTH_LDAP:
69 $ldap_info = explode('_', $a_authmode);
70 $this->getLogger()->debug('Using ldap authentication with credentials ');
71 include_once './Services/LDAP/classes/class.ilAuthProviderLDAP.php';
72 return new ilAuthProviderLDAP($credentials, $ldap_info[1]);
73
74 case AUTH_LOCAL:
75 $this->getLogger()->debug('Using local database authentication');
76 include_once './Services/Authentication/classes/Provider/class.ilAuthProviderDatabase.php';
77 return new ilAuthProviderDatabase($credentials);
78
79 case AUTH_SOAP:
80 $this->getLogger()->debug('Using SOAP authentication.');
81 include_once './Services/SOAPAuth/classes/class.ilAuthProviderSoap.php';
82 return new ilAuthProviderSoap($credentials);
83
84 case AUTH_APACHE:
85 $this->getLogger()->debug('Using apache authentication.');
86 include_once './Services/AuthApache/classes/class.ilAuthProviderApache.php';
87 return new ilAuthProviderApache($credentials);
88
89 case AUTH_CAS:
90 $this->getLogger()->debug('Using CAS authentication');
91 include_once './Services/CAS/classes/class.ilAuthProviderCAS.php';
92 return new ilAuthProviderCAS($credentials);
93
94 case AUTH_RADIUS:
95 $this->getLogger()->debug('Using radius authentication.');
96 include_once './Services/Radius/classes/class.ilAuthProviderRadius.php';
97 return new ilAuthProviderRadius($credentials);
98
99 case AUTH_SHIBBOLETH:
100 $this->getLogger()->debug('Using shibboleth authentication.');
101 include_once './Services/AuthShibboleth/classes/class.ilAuthProviderShibboleth.php';
102 return new ilAuthProviderShibboleth($credentials);
103
105 $this->getLogger()->debug('Using lti provider authentication.');
106 include_once './Services/LTI/classes/InternalProvider/class.ilAuthProviderLTI.php';
107 return new ilAuthProviderLTI($credentials);
108
109 case AUTH_ECS:
110 $this->getLogger()->debug('Using ecs authentication.');
111 include_once './Services/WebServices/ECS/classes/class.ilAuthProviderECS.php';
112 return new ilAuthProviderECS($credentials);
113
114 case AUTH_SAML:
115 $this->getLogger()->debug('Using apache authentication.');
116 require_once 'Services/Saml/classes/class.ilAuthProviderSaml.php';
117 require_once 'Services/Saml/classes/class.ilSamlIdp.php';
118 return new ilAuthProviderSaml($credentials, ilSamlIdp::getIdpIdByAuthMode($a_authmode));
119
121 $this->getLogger()->debug('Using openid connect authentication.');
122 return new ilAuthProviderOpenIdConnect($credentials);
123
124 default:
125 $this->getLogger('Plugin authentication: ' . $a_authmode);
126 foreach (ilAuthUtils::getAuthPlugins() as $pl) {
127 $provider = $pl->getProvider($credentials, $a_authmode);
128 if ($provider instanceof ilAuthProviderInterface) {
129 return $provider;
130 }
131 }
132 break;
133 }
134 return null;
135 }
136}
An exception for terminatinating execution or to throw for unit testing.
const AUTH_SHIBBOLETH
const AUTH_APACHE
const AUTH_OPENID_CONNECT
const AUTH_ECS
const AUTH_SAML
const AUTH_LDAP
const AUTH_LOCAL
const AUTH_RADIUS
const AUTH_CAS
const AUTH_PROVIDER_LTI
const AUTH_SOAP
CAS authentication provider.
Description of class class.
Auth prvider for ecs auth.
getProviderByAuthMode(ilAuthCredentials $credentials, $a_authmode)
Get provider by auth mode.
getProviders(ilAuthCredentials $credentials)
Get provider.
Description of class class.
OAuth based lti authentication.
Class ilAuthProviderOpenIdConnect.
Description of class class.
Class ilAuthProviderSaml.
Shibboleth authentication provider.
Class ilAuthProviderSoap.
static getAuthPlugins()
Get active enabled auth plugins.
static getLogger($a_component_id)
Get component logger.
static getIdpIdByAuthMode(string $a_auth_mode)
Interface of auth credentials.
getUsername()
Get username.
getAuthMode()
Get auth mode.
Standard interface for auth provider implementations.