# Bugzilla

## Presentation

Bugzilla is server software designed to help you manage software development.

Bugzilla can authenticate a user with HTTP headers, and auto-create its account with a few information:

- User ID

- Email

- Real name

## Configuration

### Bugzilla administration

In Bugzilla administration interface, go in `Parameters` » `User authentication`

Then set:

- 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

### Bugzilla virtual host

Configure Bugzilla virtual host like other protected virtual host.

- For Apache:

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

           PerlHeaderParserHandler Lemonldap::NG::Handler

           ...

    </VirtualHost>

- For Nginx:

    server {
      listen 80;
      server_name bugzilla.example.com;
      root /path/to/application;
      # Internal authentication request
      location = /lmauth {
        internal;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
        # Drop post datas
        fastcgi_pass_request_body  off;
        fastcgi_param CONTENT_LENGTH "";
        # Keep original hostname
        fastcgi_param HOST $http_host;
        # Keep original request (LLNG server will received /llauth)
        fastcgi_param X_ORIGINAL_URI  $original_uri;
      }

      # Client requests
      location / {
        auth_request /lmauth;
        set $original_uri $uri$is_args$args;
        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;
      }
    }

### Bugzilla virtual host in Manager

Go to the Manager and create a new virtual host for Bugzilla.

Configure the rules.

Configure the following header.

- Auth-User: $uid

- Auth-Mail: $mail

- Auth-Cn: $cn