Handler libraries architecture ============================== Handlers are build on rows of modules: - Applications or launchers that get the request and choose the right type *(Main, AuthBasic, ZimbraPreAuth,...)* and launch it *(may not inherits from other Handler::\* modules)* - Wrappers that call "type" library and platform "Main" (may all inherits from Platform::Main - Library types if needed *(may inherit from Main)* - Main: the main handler library Since version 2.1, wrappers are autogenerated when undefined. Generated code is simply: .. code:: perl package Lemonldap::NG::Handler::Platform::Type; use base 'Lemonldap::NG::Handler::Lib::Type', 'Lemonldap::NG::Handler::Platform::Main'; 1; Overview of Handler packages ---------------------------- ============================================================================== ============ ================= =========== ==== Usage Platform Wrapper Types Main ============================================================================== ============ ================= =========== ==== Apache2 protection ApacheMP2 ApacheMP2:: Lib:: Main Plack servers protection or Nginx/\ :doc:`SSOaaS` FastCGI/uWSGI server Server Server:: :doc:`Self protected applications` PSGI PSGI:: ============================================================================== ============ ================= =========== ==== Types are: - *(Main)*: link between Main and platform - :doc:`AuthBasic` - :doc:`CDA` - :doc:`DevOps` - :doc:`DevOps+ServiceToken` - :doc:`OAuth2` - :doc:`SecureToken` *(not available for PSGI)* - :doc:`Service Token` *(server to server)* - :doc:`ZimbraPreAuth` *(not available for PSGI)*