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 inherits from Main)
  • Main: the main handler library

Since version 2.1, wrappers are autogenerated when undefined. Generated code is simply:

package Lemonldap::NG::Handler::Platform::Type;
use base 'Lemonldap::NG::Handler::Lib::Type',
Usage Platform Wrapper Types Main
Applications Launchers
Apache2 protection ApacheMP2 ApacheMP2::<type> Lib::<type> Main
Plack servers protection or Nginx/SSOaaS FastCGI/uWSGI server Server Server::<type>
Self protected applications PSGI PSGI::<type>

Types are: