ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilWebDAVAuthentication Class Reference
+ Collaboration diagram for ilWebDAVAuthentication:

Public Member Functions

 __construct (protected ilObjUser $user, protected ilAuthSession $session, protected ilLogger $logger)
 
 authenticate (string $a_username, string $a_password)
 

Protected Member Functions

 isUserAgentSessionAware (string $user_agent)
 
 getUserAgent ()
 

Protected Attributes

array $session_aware_webdav_clients
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilWebDAVAuthentication::__construct ( protected ilObjUser  $user,
protected ilAuthSession  $session,
protected ilLogger  $logger 
)

Definition at line 43 of file class.ilWebDAVAuthentication.php.

47 {
48 }

Member Function Documentation

◆ authenticate()

ilWebDAVAuthentication::authenticate ( string  $a_username,
string  $a_password 
)

Definition at line 68 of file class.ilWebDAVAuthentication.php.

68 : bool
69 {
70 if ($this->isUserAgentSessionAware($this->getUserAgent())) {
71 if ($this->session->isAuthenticated()
72 && $this->user->getId() !== 0
73 && $this->user->getId() !== ANONYMOUS_USER_ID) {
74 $this->logger->debug('User authenticated through session. UserID = ' . $this->user->getId());
75 return true;
76 }
77 } else {
79 }
80
81 $credentials = new ilAuthFrontendCredentialsHTTP();
82 $credentials->setUsername($a_username);
83 $credentials->setPassword($a_password);
84
85 $provider_factory = new ilAuthProviderFactory();
86 $providers = $provider_factory->getProviders($credentials);
87
88 $status = ilAuthStatus::getInstance();
89
90 $frontend_factory = new ilAuthFrontendFactory();
91 $frontend_factory->setContext(ilAuthFrontendFactory::CONTEXT_HTTP);
92 $frontend = $frontend_factory->getFrontend(
93 $this->session,
94 $status,
95 $credentials,
96 $providers
97 );
98
99 $frontend->authenticate();
100
101 switch ($status->getStatus()) {
103 $this->logger->debug(
104 'User authenticated through basic authentication. UserId = ' . $this->user->getId()
105 );
106 return true;
107
109 $this->logger->info('Basic authentication failed; Account migration required.');
110 return false;
111
113 $this->logger->info('Basic authentication failed; Wrong login, password.');
114 return false;
115 }
116
117 return false;
118 }
const int STATUS_AUTHENTICATION_FAILED
const int STATUS_ACCOUNT_MIGRATION_REQUIRED
const int STATUS_AUTHENTICATED
static getInstance()
Get status instance.
static enableWebAccessWithoutSession(bool $enable_web_access_without_session)
isUserAgentSessionAware(string $user_agent)
const ANONYMOUS_USER_ID
Definition: constants.php:27

References ANONYMOUS_USER_ID, ilAuthFrontendFactory\CONTEXT_HTTP, ilSession\enableWebAccessWithoutSession(), ilAuthStatus\getInstance(), getUserAgent(), isUserAgentSessionAware(), ILIAS\Repository\logger(), ilAuthStatus\STATUS_ACCOUNT_MIGRATION_REQUIRED, ilAuthStatus\STATUS_AUTHENTICATED, ilAuthStatus\STATUS_AUTHENTICATION_FAILED, and ILIAS\Repository\user().

+ Here is the call graph for this function:

◆ getUserAgent()

ilWebDAVAuthentication::getUserAgent ( )
protected

Definition at line 60 of file class.ilWebDAVAuthentication.php.

60 : string
61 {
62 $user_agent = $_SERVER["HTTP_USER_AGENT"] ?? "";
63 $user_agent = is_string($user_agent) ? $user_agent : "";
64
65 return $user_agent;
66 }
$_SERVER['HTTP_HOST']
Definition: raiseError.php:26

References $_SERVER.

Referenced by authenticate().

+ Here is the caller graph for this function:

◆ isUserAgentSessionAware()

ilWebDAVAuthentication::isUserAgentSessionAware ( string  $user_agent)
protected

Definition at line 50 of file class.ilWebDAVAuthentication.php.

50 : bool
51 {
52 foreach ($this->session_aware_webdav_clients as $webdav_client_name) {
53 if (stristr($user_agent, $webdav_client_name)) {
54 return true;
55 }
56 }
57 return false;
58 }

Referenced by authenticate().

+ Here is the caller graph for this function:

Field Documentation

◆ $session_aware_webdav_clients

array ilWebDAVAuthentication::$session_aware_webdav_clients
protected
Initial value:
= [
"Microsoft-WebDAV-MiniRedir",
"gvfs"
]

Definition at line 38 of file class.ilWebDAVAuthentication.php.


The documentation for this class was generated from the following file: