skip to Main Content

I tried to implement the simplesamlphp library into my web application. But when I call the requireAuth() function I get a PHP fatal error message. Uncaught Exception: Loader: Illegal character in filename…..
It seems like he can’t resolve the Class SimpleSAMLModulesamlAuthSourceSP
But I don’t know why.
Does anyone have a idea how to fix this?
I already deleted the whole simplesamlphp installation and reinstalled it.

I use the following code:

require 'var/www/simplesamlphp/lib/_autoload.php';
$lAuthSrc = new SimpleSAMLAuthSimple('default-sp');
if (!$lAuthSrc->isAuthenticated()) {
  $lAuthSrc->requireAuth();
}
$lAttributes = $lAuthSrc -> getAttributes();
foreach($lAttributes as $lAttribute) {
  print_r($lAttribute);
}

Some additional informations:
The configured authentication source test works fine. If I login via the configured authentication source, everything works fine and I don’t get any error messages (the requireAuth() function don’t get called in this case).
I use the latest version of simplesamlphp v.1.18.3

If you need any more information, please let me know.

2

Answers


  1. Chosen as BEST ANSWER

    Thank you all for your help. I discovered this morning the issue. The issue was the autoloader which I use for my own application. I registered the application autoloader in another file which gets executed before the code you see above. And simplesamlphp uses some conditions like:

    if (!class_exists($className))
    

    And beacuse I registered my application autoloader before the function class_exists checked if the class exists in my application. In my application I don't use namespaces and this was the issue.

    To fix this issue, I unregistered my application autoloader before using the simplesamlphp code and registered the autoloader again after the simplesamlphp code.

    I hope this will save some of you headaches.


  2. Honestly it looks like your path is messed up on the require… are you sure you should be using:

    require 'var/www/simplesamlphp/lib/_autoload.php';

    and not

    require '/var/www/simplesamlphp/lib/_autoload.php';

    Do you really have a ‘var/www’ subdirectory relative to the location of the script? That looks wrong to me. If you include that first / before var it makes that path absolute to the typical install location for SSP.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search