# Bugzilla

## Présentation

Bugzilla est un logiciel serveur conçu pour assister la gestion de développement logiciel.

Bugzilla peut authentifier un utilisateur par en-tête HTTP et auto-générer son compte avec quelques informations :

- User ID
- Email
- Real name

## Configuration

### Administration de Bugzilla

Dans l'interface d'administration, allez dans `Parameters` » `User authentication`

et indiquez :

- auth_env_id: HTTP_AUTH_USER
- auth_env_email: HTTP_AUTH_MAIL
- auth_env_realname: HTTP_AUTH_CN
- user_info_class: Env or Env,CGI

### Hôte virtuel Bugzilla

Configurer l'hôte virtuel Bugzilla comme n'importe quel autre hôte virtuel protégé.

- Pour Apache:

    <VirtualHost *:80>
           ServerName bugzilla.example.com

           PerlHeaderParserHandler Lemonldap::NG::Handler

           ...

    </VirtualHost>

- Pour Nginx:

    server {
      listen 80;
      server_name bugzilla.example.com;
      root /path/to/application;
      # Requête interne d'authentification
      location = /lmauth {
        internal;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
        # Ignorer les données postées
        fastcgi_pass_request_body  off;
        fastcgi_param CONTENT_LENGTH "";
        # Conserver le nom d'hôte original
        fastcgi_param HOST $http_host;
        # Conserver la requête originale (le serveur LLNG va recevoir /llauth)
        fastcgi_param X_ORIGINAL_URI  $request_uri;
      }

      # Requêtes clients
      location / {
        auth_request /lmauth;
        auth_request_set $lmremote_user $upstream_http_lm_remote_user;
        auth_request_set $lmlocation $upstream_http_location;
        error_page 401 $lmlocation;
        try_files $uri $uri/ =404;

        ...

        include /etc/lemonldap-ng/nginx-lua-headers.conf;
      }
      location / {
        try_files $uri $uri/ =404;
      }
    }

### Hôte virtuel Bugzilla dans le manager

Aller dans le manager et créer un nouvel hôte virtuel pour Bugzilla.

Configurer les règles d'accès.

Configurer les en-têtes suivants.

- Auth-User: $uid
- Auth-Mail: $mail
- Auth-Cn: $cn