# 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

## Overview of Handler packages

Usage | Platform | Wrapper | Types | Main
--- | --- | --- | --- | ---
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:

- (Main): link between Main and platform

- AuthBasic

- CDA

- DevOps

- DevOps+ServiceToken

- OAuth2

- SecureToken (not available for PSGI)

- Service Token (server to server)

- ZimbraPreAuth (not available for PSGI)