ILIAS  release_4-4 Revision
ShibAuth Class Reference
+ Inheritance diagram for ShibAuth:
+ Collaboration diagram for ShibAuth:

Public Member Functions

 __construct ($authParams, $updateUserData=false)
 
 supportsRedirects ()
 
 setIdle ($time, $add=false)
 Deletes a role and deletes entries in object_data, rbac_pa, rbac_templates, rbac_ua, rbac_fa. More...
 
 setExpire ($time, $add=false)
 Set the maximum expire time. More...
 
 login ()
 Login function. More...
 
 setAuth ($username, ilObjUser $userObj=NULL)
 
 logout ()
 Logout function. More...
 
 generateLogin ()
 Automatically generates the username/screenname of a Shibboleth user or returns the user's already existing username. More...
 
- Public Member Functions inherited from Auth
 Auth ($storageDriver, $options='', $loginFunction='', $showLogin=true)
 Constructor. More...
 
applyAuthOptions (&$options)
 Set the Auth options. More...
 
 _loadStorage ()
 Load Storage Driver if not already loaded. More...
 
 assignData ()
 Assign data from login form to internal values. More...
 
 start ()
 Start new auth session. More...
 
 login ()
 Login function. More...
 
 setExpire ($time, $add=false)
 Set the maximum expire time. More...
 
 setIdle ($time, $add=false)
 Set the maximum idle time. More...
 
 setSessionName ($name='session')
 Set name of the session to a customized value. More...
 
 setShowLogin ($showLogin=true)
 Should the login form be displayed if neccessary? More...
 
 setAllowLogin ($allowLogin=true)
 Should the login form be displayed if neccessary? More...
 
 setCheckAuthCallback ($checkAuthCallback)
 Register a callback function to be called whenever the validity of the login is checked The function will receive two parameters, the username and a reference to the auth object. More...
 
 setLoginCallback ($loginCallback)
 Register a callback function to be called on user login. More...
 
 setFailedLoginCallback ($loginFailedCallback)
 Register a callback function to be called on failed user login. More...
 
 setLogoutCallback ($logoutCallback)
 Register a callback function to be called on user logout. More...
 
 setAuthData ($name, $value, $overwrite=true)
 Register additional information that is to be stored in the session. More...
 
 getAuthData ($name=null)
 Get additional information that is stored in the session. More...
 
 setAuth ($username)
 Register variable in a session telling that the user has logged in successfully. More...
 
 setAdvancedSecurity ($flag=true)
 Enables advanced security checks. More...
 
 checkAuth ()
 Checks if there is a session with valid auth information. More...
 
 getAuth ()
 Has the user been authenticated? More...
 
 logout ()
 Logout function. More...
 
 updateIdle ()
 Update the idletime. More...
 
 getUsername ()
 Get the username. More...
 
 getStatus ()
 Get the current status. More...
 
 getPostUsernameField ()
 Gets the post varible used for the username. More...
 
 getPostPasswordField ()
 Gets the post varible used for the username. More...
 
 sessionValidThru ()
 Returns the time up to the session is valid. More...
 
 listUsers ()
 List all users that are currently available in the storage container. More...
 
 addUser ($username, $password, $additional='')
 Add user to the storage container. More...
 
 removeUser ($username)
 Remove user from the storage container. More...
 
 changePassword ($username, $password)
 Change password for user in the storage container. More...
 
 log ($message, $level=AUTH_LOG_DEBUG)
 Log a message from the Auth system. More...
 
 _loadLogger ()
 Load Log object if not already loaded. More...
 
 attachLogObserver (&$observer)
 Attach an Observer to the Auth Log Source. More...
 
 _isAdvancedSecurityEnabled ($feature=null)
 Is advanced security enabled? More...
 
- Public Member Functions inherited from ilAuthBase
 supportsRedirects ()
 Returns true, if the current auth mode allows redirects to e.g the login screen, public section ... More...
 
 getContainer ()
 Get container object. More...
 
 getExceededUserName ()
 

Static Public Member Functions

static toAscii ($string)
 Replaces any non-ASCII character by its linguistically most logical substitution. More...
 
- Static Public Member Functions inherited from Auth
_factory ($driver, $options='')
 Return a storage driver based on $driver and $options. More...
 
 staticCheckAuth ($options=null)
 Statically checks if there is a session with valid auth information. More...
 

Data Fields

 $username
 
 $_sessionName = '_authsession'
 
 $status = ''
 
 $expire = 0
 
 $idle = 0
 
 $idled = false
 
- Data Fields inherited from Auth
 $expire = 0
 
 $expired = false
 
 $idle = 0
 
 $idled = false
 
 $storage = ''
 
 $loginFunction = ''
 
 $showLogin = true
 
 $allowLogin = true
 
 $status = ''
 
 $username = ''
 
 $password = ''
 
 $checkAuthCallback = ''
 
 $loginCallback = ''
 
 $loginFailedCallback = ''
 
 $logoutCallback = ''
 
 $_sessionName = '_authsession'
 
 $version = "@version@"
 
 $advancedsecurity = false
 
 $_postUsername = 'username'
 
 $_postPassword = 'password'
 
 $session
 
 $server
 
 $post
 
 $cookie
 
 $authdata
 
 $authChecks = 0
 
 $logger = null
 
 $enableLogging = false
 
 $regenerateSessionId = false
 

Static Private Member Functions

static getFirstString ($string)
 Cleans and returns first of potential many values (multi-valued attributes) More...
 

Additional Inherited Members

- Protected Member Functions inherited from ilAuthBase
 initAuth ()
 Init auth object Enable logging, set callbacks... More...
 
 loginObserver ($a_username, $a_auth)
 Called after successful login. More...
 
 failedLoginObserver ($a_username, $a_auth)
 Called after failed login. More...
 
 checkAuthObserver ($a_username, $a_auth)
 Called after each check auth request. More...
 
 logoutObserver ($a_username, $a_auth)
 Called after logout. More...
 
- Protected Attributes inherited from ilAuthBase
 $sub_status = null
 
 $exceeded_user_name
 

Detailed Description

Definition at line 40 of file class.ilShibboleth.php.

Constructor & Destructor Documentation

◆ __construct()

ShibAuth::__construct (   $authParams,
  $updateUserData = false 
)
Parameters
$authParams
bool$updateUserData

Definition at line 93 of file class.ilShibboleth.php.

References Auth\setSessionName().

93  {
94  if ($authParams['sessionName'] != '') {
95  parent::Auth('', array( 'sessionName' => $authParams['sessionName'] ));
96  } else {
97  parent::Auth('');
98  }
99  $this->updateUserData = $updateUserData;
100  if (! empty($authParams['sessionName'])) {
101  $this->setSessionName($authParams['sessionName']);
102  unset($authParams['sessionName']);
103  }
104  }
setSessionName($name='session')
Set name of the session to a customized value.
Definition: Auth.php:656
+ Here is the call graph for this function:

Member Function Documentation

◆ generateLogin()

ShibAuth::generateLogin ( )

Automatically generates the username/screenname of a Shibboleth user or returns the user's already existing username.

private

Returns
String Generated username

Definition at line 368 of file class.ilShibboleth.php.

References ilObjUser\_checkExternalAuthAccount(), ilUtil\generatePasswords(), ilObjUser\getUserIdByLogin(), and toAscii().

Referenced by login().

368  {
369  global $ilias, $ilDB;
370  $shibID = $_SERVER[$ilias->getSetting('shib_login')];
371  $lastname = self::getFirstString($_SERVER[$ilias->getSetting('shib_lastname')]);
372  $firstname = self::getFirstString($_SERVER[$ilias->getSetting('shib_firstname')]);
373  if (trim($shibID) == '') {
374  return;
375  }
376  //***********************************************//
377  // For backwards compatibility with previous versions
378  // We use the passwd field as mapping attribute for Shibboleth users
379  // because they don't need a password
380  $ilias->db->query("UPDATE usr_data SET auth_mode='shibboleth', passwd="
381  . $ilDB->quote(md5(end(ilUtil::generatePasswords(1)))) . ', ext_account=' . $ilDB->quote($shibID)
382  . ' WHERE passwd=' . $ilDB->quote($shibID));
383  //***********************************************//
384  // Let's see if user already is registered
385  $local_user = ilObjUser::_checkExternalAuthAccount('shibboleth', $shibID);
386  if ($local_user) {
387  return $local_user;
388  }
389  // Let's see if user already is registered but authenticates by ldap
390  $local_user = ilObjUser::_checkExternalAuthAccount('ldap', $shibID);
391  if ($local_user) {
392  return $local_user;
393  }
394  // User doesn't seem to exist yet
395  // Generate new username
396  // This can be overruled by the data conversion API but you have
397  // to do it yourself in that case
398  // Generate the username out of the first character of firstname and the
399  // first word in lastname (adding the second one if the login is too short,
400  // avoiding meaningless last names like 'von' or 'd' and eliminating
401  // non-ASCII-characters, spaces, dashes etc.
402  $ln_arr = preg_split("/[ ' -;]/", $lastname);
403  $login = substr($this->toAscii($firstname), 0, 1) . '.' . $this->toAscii($ln_arr[0]);
404  if (strlen($login) < 6) {
405  $login .= $this->toAscii($ln_arr[1]);
406  }
407  $prefix = strtolower($login);
408  // If the user name didn't contain any ASCII characters, assign the
409  // name 'shibboleth' followed by a number, starting with 1.
410  if (strlen($prefix) == 0) {
411  $prefix = 'shibboleth';
412  $number = 1;
413  } else {
414  // Try if the login name is not already taken
415  if (! ilObjUser::getUserIdByLogin($prefix)) {
416  return $prefix;
417  }
418  // If the login name is in use, append a number, starting with 2.
419  $number = 2;
420  }
421  // Append a number, if the username is already taken
422  while (ilObjUser::getUserIdByLogin($prefix . $number)) {
423  $number ++;
424  }
425 
426  return $prefix . $number;
427  }
static generatePasswords($a_number)
Generate a number of passwords.
getUserIdByLogin($a_login)
static _checkExternalAuthAccount($a_auth, $a_account)
check whether external account and authentication method matches with a user
static toAscii($string)
Replaces any non-ASCII character by its linguistically most logical substitution. ...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getFirstString()

static ShibAuth::getFirstString (   $string)
staticprivate

Cleans and returns first of potential many values (multi-valued attributes)

private

Parameters
A$string

Definition at line 441 of file class.ilShibboleth.php.

441  {
442  $list = explode(';', $string);
443  $clean_string = rtrim($list[0]);
444 
445  return $clean_string;
446  }

◆ login()

ShibAuth::login ( )

Login function.

private

Returns
void

Definition at line 162 of file class.ilShibboleth.php.

References $_GET, $ilSetting, $username, ilObjUser\_updateLastLogin(), AUTH_WRONG_LOGIN, ilShibbolethRoleAssignmentRules\doAssignments(), generateLogin(), ilUtil\generatePasswords(), ilShibbolethPluginWrapper\getInstance(), ilObjUser\getUserIdByLogin(), IL_PASSWD_MD5, ilUtil\redirect(), setAuth(), and ilShibbolethRoleAssignmentRules\updateAssignments().

162  {
163  global $ilias, $ilSetting;
164  if (! empty($_SERVER[$ilias->getSetting('shib_login')])) {
165  // Store user's Shibboleth sessionID for logout
166  $this->session['shibboleth_session_id'] = $_SERVER['Shib-Session-ID'];
167  // Get loginname of user, new login name is generated if user is new
168  $username = $this->generateLogin();
169  // Authorize this user
170  $userObj = new ilObjUser();
171  $this->setAuth($username, $userObj);
172  // Check wether this account exists already, if not create it
174 
175  $newUser['firstname'] = self::getFirstString($_SERVER[$ilias->getSetting('shib_firstname')]);
176  $newUser['lastname'] = self::getFirstString($_SERVER[$ilias->getSetting('shib_lastname')]);
177  $newUser['login'] = $username;
178  // Password must be random to prevent users from manually log in using the login data from Shibboleth users
179  $newUser['passwd'] = md5(end(ilUtil::generatePasswords(1)));
180  $newUser['passwd_type'] = IL_PASSWD_MD5;
181  if ($ilias->getSetting('shib_update_gender') AND ($_SERVER[$ilias->getSetting('shib_gender')] == 'm' OR
182  $_SERVER[$ilias->getSetting('shib_gender')] == 'f')
183  ) {
184  $newUser['gender'] = $_SERVER[$ilias->getSetting('shib_gender')];
185  }
186  // Save mapping between ILIAS user and Shibboleth uniqueID
187  $newUser['ext_account'] = $_SERVER[$ilias->getSetting('shib_login')];
188  // other data
189  $newUser['title'] = $_SERVER[$ilias->getSetting('shib_title')];
190  $newUser['institution'] = $_SERVER[$ilias->getSetting('shib_institution')];
191  $newUser['department'] = $_SERVER[$ilias->getSetting('shib_department')];
192  $newUser['street'] = $_SERVER[$ilias->getSetting('shib_street')];
193  $newUser['city'] = $_SERVER[$ilias->getSetting('shib_city')];
194  $newUser['zipcode'] = $_SERVER[$ilias->getSetting('shib_zipcode')];
195  $newUser['country'] = $_SERVER[$ilias->getSetting('shib_country')];
196  $newUser['phone_office'] = self::getFirstString($_SERVER[$ilias->getSetting('shib_phone_office')]);
197  $newUser['phone_home'] = self::getFirstString($_SERVER[$ilias->getSetting('shib_phone_home')]);
198  $newUser['phone_mobile'] = self::getFirstString($_SERVER[$ilias->getSetting('shib_phone_mobile')]);
199  $newUser['fax'] = self::getFirstString($_SERVER[$ilias->getSetting('shib_fax')]);
200  $newUser['matriculation'] = $_SERVER[$ilias->getSetting('shib_matriculation')];
201  $newUser['email'] = self::getFirstString($_SERVER[$ilias->getSetting('shib_email')]);
202  $newUser['hobby'] = $_SERVER[$ilias->getSetting('shib_hobby')];
203  $newUser['auth_mode'] = 'shibboleth';
204  // system data
205  $userObj->assignData($newUser);
206  $userObj->setTitle($userObj->getFullname());
207  $userObj->setDescription($userObj->getEmail());
208  $userObj->setLanguage(self::getFirstString($_SERVER[$ilias->getSetting('shib_language')]));
209  // Time limit
210  $userObj->setTimeLimitOwner(7);
211  $userObj->setTimeLimitUnlimited(1);
212  $userObj->setTimeLimitFrom(time());
213  $userObj->setTimeLimitUntil(time());
214  // Modify user data before creating the user
215  // Include custom code that can be used to further modify
216  // certain Shibboleth user attributes
217  if ($ilias->getSetting('shib_data_conv') AND
218  $ilias->getSetting('shib_data_conv') != '' AND is_readable($ilias->getSetting('shib_data_conv'))
219  ) {
220  include($ilias->getSetting('shib_data_conv'));
221  }
222  // Create use in DB
223  $userObj = ilShibbolethPluginWrapper::getInstance()->beforeCreateUser($userObj);
224  $userObj->create();
225  $userObj->setActive(1);
226  $userObj->updateOwner();
227  //insert user data in table user_data
228  $userObj->saveAsNew();
229  // store acceptance of user agreement
230  //$userObj->writeAccepted();
231  // Default prefs
232  $userObj->setPref('hits_per_page', $ilSetting->get('hits_per_page', 30));
233  $userObj->setPref('show_users_online', $ilSetting->get('show_users_online', 'y'));
234  // setup user preferences
235  $userObj->writePrefs();
236  $userObj = ilShibbolethPluginWrapper::getInstance()->afterCreateUser($userObj);
237  //set role entries
238  #$rbacadmin->assignUser($ilias->getSetting('shib_user_default_role'), $userObj->getId(),true);
239  // New role assignment
240  ilShibbolethRoleAssignmentRules::doAssignments($userObj->getId(), $_SERVER);
241  // Authorize this user
242  $this->setAuth($userObj->getLogin(), $userObj);
243  } else {
244  // Update user account
245  $uid = $userObj->checkUserId();
246  $userObj->setId($uid);
247  $userObj->read($uid);
248  if ($ilias->getSetting('shib_update_gender') AND ($_SERVER[$ilias->getSetting('shib_gender')] == 'm' OR
249  $_SERVER[$ilias->getSetting('shib_gender')] == 'f')
250  ) {
251  $userObj->setGender($_SERVER[$ilias->getSetting('shib_gender')]);
252  }
253  if ($ilias->getSetting('shib_update_title')) {
254  $userObj->setTitle($_SERVER[$ilias->getSetting('shib_title')]);
255  }
256  $userObj->setFirstname(self::getFirstString($_SERVER[$ilias->getSetting('shib_firstname')]));
257  $userObj->setLastname(self::getFirstString($_SERVER[$ilias->getSetting('shib_lastname')]));
258  $userObj->setFullname();
259  $userObj->setTitle($userObj->getFullname());
260  $userObj->setDescription($userObj->getEmail());
261  if ($ilias->getSetting('shib_update_institution')) {
262  $userObj->setInstitution($_SERVER[$ilias->getSetting('shib_institution')]);
263  }
264  if ($ilias->getSetting('shib_update_department')) {
265  $userObj->setDepartment($_SERVER[$ilias->getSetting('shib_department')]);
266  }
267  if ($ilias->getSetting('shib_update_street')) {
268  $userObj->setStreet($_SERVER[$ilias->getSetting('shib_street')]);
269  }
270  if ($ilias->getSetting('shib_update_city')) {
271  $userObj->setCity($_SERVER[$ilias->getSetting('shib_city')]);
272  }
273  if ($ilias->getSetting('shib_update_zipcode')) {
274  $userObj->setZipcode($_SERVER[$ilias->getSetting('shib_zipcode')]);
275  }
276  if ($ilias->getSetting('shib_update_country')) {
277  $userObj->setCountry($_SERVER[$ilias->getSetting('shib_country')]);
278  }
279  if ($ilias->getSetting('shib_update_phone_office')) {
280  $userObj->setPhoneOffice(self::getFirstString($_SERVER[$ilias->getSetting('shib_phone_office')]));
281  }
282  if ($ilias->getSetting('shib_update_phone_home')) {
283  $userObj->setPhoneHome(self::getFirstString($_SERVER[$ilias->getSetting('shib_phone_home')]));
284  }
285  if ($ilias->getSetting('shib_update_phone_mobile')) {
286  $userObj->setPhoneMobile(self::getFirstString($_SERVER[$ilias->getSetting('shib_phone_mobile')]));
287  }
288  if ($ilias->getSetting('shib_update_fax')) {
289  $userObj->setFax($_SERVER[$ilias->getSetting('shib_fax')]);
290  }
291  if ($ilias->getSetting('shib_update_matriculation')) {
292  $userObj->setMatriculation($_SERVER[$ilias->getSetting('shib_matriculation')]);
293  }
294  if ($ilias->getSetting('shib_update_email')) {
295  $userObj->setEmail(self::getFirstString($_SERVER[$ilias->getSetting('shib_email')]));
296  }
297  if ($ilias->getSetting('shib_update_hobby')) {
298  $userObj->setHobby($_SERVER[$ilias->getSetting('shib_hobby')]);
299  }
300  if ($ilias->getSetting('shib_update_language')) {
301  $userObj->setLanguage($_SERVER[$ilias->getSetting('shib_language')]);
302  }
303  // Include custom code that can be used to further modify
304  // certain Shibboleth user attributes
305  if ($ilias->getSetting('shib_data_conv') AND
306  $ilias->getSetting('shib_data_conv') != '' AND is_readable($ilias->getSetting('shib_data_conv'))
307  ) {
308  include($ilias->getSetting('shib_data_conv'));
309  }
310  $userObj = ilShibbolethPluginWrapper::getInstance()->beforeUpdateUser($userObj);
311  $userObj->update();
312  $userObj = ilShibbolethPluginWrapper::getInstance()->afterUpdateUser($userObj);
313  // Update role assignments
314  ilShibbolethRoleAssignmentRules::updateAssignments($userObj->getId(), $_SERVER);
315  }
316  ilObjUser::_updateLastLogin($userObj->getId());
317  // we are authenticated: redirect, if possible
318  if ($_GET['target'] != '') {
319  ilUtil::redirect('goto.php?target=' . $_GET['target'] . '&client_id=' . CLIENT_ID);
320  }
321  } else {
322  // This should never occur unless Shibboleth is not configured properly
323  $this->status = AUTH_WRONG_LOGIN;
324  }
325  }
$_GET["client_id"]
static generatePasswords($a_number)
Generate a number of passwords.
getUserIdByLogin($a_login)
generateLogin()
Automatically generates the username/screenname of a Shibboleth user or returns the user&#39;s already ex...
const IL_PASSWD_MD5
global $ilSetting
Definition: privfeed.php:40
setAuth($username, ilObjUser $userObj=NULL)
static _updateLastLogin($a_usr_id, $a_last_login=null)
STATIC METHOD updates the last_login field of user with given id to given or current date...
const AUTH_WRONG_LOGIN
Returned if container is unable to authenticate user/password pair.
Definition: Auth.php:38
static redirect($a_script)
http redirect to other script
+ Here is the call graph for this function:

◆ logout()

ShibAuth::logout ( )

Logout function.

This function clears any auth tokens in the currently active session and executes the logout callback function, if any

public

Returns
void

Definition at line 353 of file class.ilShibboleth.php.

References $ilUser, and ilShibbolethPluginWrapper\getInstance().

353  {
354  global $ilUser;
355  ilShibbolethPluginWrapper::getInstance()->beforeLogout($ilUser);
356  parent::logout();
357  ilShibbolethPluginWrapper::getInstance()->afterLogout($ilUser);
358  }
global $ilUser
Definition: imgupload.php:15
+ Here is the call graph for this function:

◆ setAuth()

ShibAuth::setAuth (   $username,
ilObjUser  $userObj = NULL 
)
Parameters
$username
ilObjUser$userObj

Definition at line 332 of file class.ilShibboleth.php.

References ilShibbolethPluginWrapper\getInstance().

Referenced by login().

332  {
333  if ($userObj) {
334  ilShibbolethPluginWrapper::getInstance()->beforeLogin($userObj);
335  }
336  parent::setAuth($username);
337  if ($userObj) {
338  ilShibbolethPluginWrapper::getInstance()->afterLogin($userObj);
339  }
340  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setExpire()

ShibAuth::setExpire (   $time,
  $add = false 
)

Set the maximum expire time.

public

Parameters
integertime in seconds
booladd time to current expire time or not
Returns
void

Definition at line 147 of file class.ilShibboleth.php.

147  {
148  if ($add) {
149  $this->expire += $time;
150  } else {
151  $this->expire = $time;
152  }
153  }

◆ setIdle()

ShibAuth::setIdle (   $time,
  $add = false 
)

Deletes a role and deletes entries in object_data, rbac_pa, rbac_templates, rbac_ua, rbac_fa.

public

Parameters
$time
bool$add

Definition at line 128 of file class.ilShibboleth.php.

128  {
129  if ($add) {
130  $this->idle += $time;
131  } else {
132  $this->idle = $time;
133  }
134  }

◆ supportsRedirects()

ShibAuth::supportsRedirects ( )
Returns
bool

Definition at line 110 of file class.ilShibboleth.php.

110  {
111  return true;
112  }

◆ toAscii()

static ShibAuth::toAscii (   $string)
static

Replaces any non-ASCII character by its linguistically most logical substitution.

private

Parameters
A$string

Definition at line 462 of file class.ilShibboleth.php.

References UtfNormal\toNFKD().

Referenced by generateLogin().

462  {
463  // Normalize to NFKD.
464  // This separates letters from combining marks.
465  // See http://unicode.org/reports/tr15
466  $string = UtfNormal::toNFKD($string);
467  // Replace german usages of diaeresis by appending an e
468  $string = preg_replace('/([aouAOU])\\xcc\\x88/', '\\1e', $string);
469  // Replace the combined ae character by separated a and e
470  $string = preg_replace('/\\xc3\\x86/', 'AE', $string);
471  $string = preg_replace('/\\xc3\\xa6/', 'ae', $string);
472  // Replace the combined thorn character by th
473  $string = preg_replace('/\\xc3\\x9e/', 'TH', $string);
474  $string = preg_replace('/\\xc3\\xbe/', 'th', $string);
475  // Replace the letter eth by d
476  $string = preg_replace('/\\xc3\\x90/', 'D', $string);
477  $string = preg_replace('/\\xc4\\x91/', 'd', $string);
478  $string = preg_replace('/\\xc4\\x90/', 'D', $string);
479  // Replace the combined ss character
480  $string = preg_replace('/\\xc3\\x9f/', 'ss', $string);
481  // Get rid of everything except the characters a to z and the hyphen
482  $string = preg_replace('/[^a-zA-Z\-]/i', '', $string);
483 
484  return $string;
485  }
toNFKD( $string)
Convert a UTF-8 string to normal form KD, compatibility decomposition.
Definition: UtfNormal.php:207
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $_sessionName

ShibAuth::$_sessionName = '_authsession'

Definition at line 53 of file class.ilShibboleth.php.

◆ $expire

ShibAuth::$expire = 0

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

◆ $idle

ShibAuth::$idle = 0

Definition at line 79 of file class.ilShibboleth.php.

◆ $idled

ShibAuth::$idled = false

Definition at line 86 of file class.ilShibboleth.php.

◆ $status

ShibAuth::$status = ''

Definition at line 59 of file class.ilShibboleth.php.

◆ $username

ShibAuth::$username

Definition at line 47 of file class.ilShibboleth.php.

Referenced by login().


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