Skip to content
Snippets Groups Projects
  1. May 28, 2018
  2. Aug 04, 2017
  3. Aug 03, 2017
  4. Aug 01, 2017
  5. Jul 20, 2017
    • Scato Eggen's avatar
      Invalidate opcache after writing a file · cd8179d7
      Scato Eggen authored
      When opcache.validate_timestamps is disabled, then the new metadata will not be read after a metarefresh.
      This can be solved by adding the metadata file to an opcache blacklist, but calling opcache_invalidate()
      after writing a file is a nice out-of-the-box solution.
      
      Hopefully, this will enable everybody that is using simplesamlphp to disable opcache.validate_timestamps
      without running into problems.
      cd8179d7
  6. Jul 18, 2017
  7. Jul 05, 2017
  8. Jul 04, 2017
    • Jaime Pérez Crespo's avatar
      Further optimize the SimpleSAML\Module class. · 7b3a5c0d
      Jaime Pérez Crespo authored
      Instead of one cache, we need to use two: one for the list of modules available, and the other for the details for them. Those caches should be filled independently, so that someone calling getModules() does not trigger the code checking of the modules are enabled or finding their hooks.
      7b3a5c0d
    • Jaime Pérez Crespo's avatar
      Do not automatically load all the template directories of all modules. · 7ec9caa0
      Jaime Pérez Crespo authored
      It has also an impact in performance, and covers an unlikely scenario. Instead, if you plan to use templates from another module, now you need to call the "addTemplatesFromModule()" method right after creating the template. That way you can register manually what templates you are supposed to use, being much more efficient.
      7ec9caa0
    • Jaime Pérez Crespo's avatar
      Remove the 'templateInit' hook. · a506502b
      Jaime Pérez Crespo authored
      An alternative way to inject data in the templates should be used. This has a terrible impact in performance, and could have undesired side effects.
      a506502b
    • Jaime Pérez Crespo's avatar
      Add a method to get the twig object used in a template. · d0e09690
      Jaime Pérez Crespo authored
      This allows template users to use their own twig extensions if they want, while also allowing us to remove the "twigInit" hook. Hooks come at a price, and it doesn't make much sense to use them in this case, as they would only be useful if a module wants to add a twig extension even if the code instantiating SimpleSAML_XHTML_Template does not belong to that module. This could lead to unexpected behaviour (i.e. a module adding a hook that creates trouble for the templates defined in another module), so given the lack of use cases supporting the hook and the possible negative consequences implied, it's better to remove it.
      d0e09690
  9. Jun 30, 2017
    • Jaime Pérez Crespo's avatar
      Enhance the performance of SimpleSAML\Module. · 4e68df80
      Jaime Pérez Crespo authored
      The issue here is that every time we need to list the modules or check if they are enabled, we just iterate over the modules directory and subdirectories, which is terribly expensive. Instead of doing so, we build a cache of modules specifying if they are enabled or not. In the end, this is also fixing another issue, given that enabling/disabling a module in the middle of a request being processed could lead to inconsistencies and unexpected behaviour (likely exceptions and horrible crashes). Modules should be checked in the beginning of a request and their state (enabled/disabled) frozen until the request is processed to avoid that, and this is the way to achieve so.
      
      Additionally, we take the chance to check if modules are enabled when we search for them. This reduces the processing time to around a third of the original without this fix.
      4e68df80
  10. Jun 28, 2017
  11. Jun 16, 2017
  12. Jun 09, 2017
  13. Jun 08, 2017
  14. Jun 06, 2017
    • Jaime Pérez Crespo's avatar
      Fix a bug in the PHP session handler · ab344d88
      Jaime Pérez Crespo authored
      When unserializing the session fails, the handler should return null instead of false. Additionally, SimpleSAML_Session::load() should make sure that it got an instance of SimpleSAML_Session, to avoid any misbehaving handlers to generate an issue.
      
      This resolves #616.
      ab344d88
  15. May 05, 2017
    • Matt Schwager's avatar
      Added tests for SimpleSAML\Utils\Crypto · 8e39cd49
      Matt Schwager authored
      This also required adding an additional argument to
      SimpleSAML\Utils\Crypto::loadPrivateKey to ease in testing. Without
      this additional argument, SimpleSAML_Configuration::getBaseDir eventually
      gets called to determine the private key location.  This doesn't work
      well with vfsstream. This argument shouldn't cause too much trouble, and
      seems cohesive enough with the function's purpose.
      8e39cd49
    • Jaime Pérez Crespo's avatar
      bugfix: SimpleSAML\Utils\Crypto returns true for different strings using PHP < 5.6. · 4bc62965
      Jaime Pérez Crespo authored
      The reason was the lack of conversion to integer for each character of the strings before applying the XOR operator to them. The operator returns always an empty string when applied to two characters, and applying a binary-wise OR between 0 and an empty string, yields 0. Therefore, $diff is always 0, and the function returns true for every two strings with same length, regardless of their contents.
      4bc62965
  16. Apr 26, 2017
Loading