# Configuração do BCC Web Server

## Introdução

Esse manual descreve a configuração dos componentes do lado do servidor da aplicação *GBS BCC*. O GBS BCC é uma aplicação projetada para cadastrar perfis civis e de bebes com seus dados biográficos e biométricos, tal como impressões digitais, face, impressões palmares, íris e outros.

O procedimento de configuração deve ser feito somente depois do passo de instalação. Para mais informações, consulte o [Manual de Instalação do GBS Apps](https://docs.griaule.com/componentes-web/gbsappssetup).

## Configuração

Os passos de configuração são:

1. Configure o Tomcat;
2. Configure os Certificados;
3. Gere a senha criptografada;
4. Finalize as configurações no arquivo config.properties.

Todos os passos são descritos abaixo. Um exemplo do arquivo `config.properties` pode ser visto na seção [Exemplo do Arquivo de Configuração](#exemplo-do-arquivo-de-configuracao).

{% hint style="danger" %}
Todas as linhas devem estar presentes no arquivo de configuração. Comentar ou deletar linhas pode causar comportamentos inesperados. Para informações adicionais, contate o Time de Suporte da Griaule.
{% endhint %}

### Configuração do Tomcat

Edite o arquivo de configuração do Tomcat para configurar os certificados e a porta que a aplicação usará.

```sh
vi /var/lib/tomcats/bcc/conf/server.xml
```

Para mudar a porta, procure por `connector port=`. Essa é a porta para operações backend.

### Configuração de Certificados

Para habilitar autenticação SSL, procure por `connector port=` no arquivo `/conf/server.xml`.

Existem duas entradas. A comentada é a configuração para SSL. Remova os delimitadores de comentários `<!--` e `-->`, então ajuste os seguintes parâmetros:

```properties
port="58194"
keystoreFile="/home/griaule/keystore"
keystorePass="password"
keyAlias="1"
clientAuth="true"
truststoreFile="/home/griaule/keystore"
truststorePass="password"
```

O parâmetro `port` deve ser a porta de rede desejada para a aplicação.

Mude o caminho do `keystoreFile` e o `truststoreFile` para os valores apropriados. Faça o mesmo para o `keystorePass` e o `truststorePass`.

O parâmetro `clientAuth="true"` irá requerer autenticação do servidor para o cliente e do cliente para o servidor. Isso significa que o cliente necessitará importar o certificado no navegador para poder acessar a aplicação.

{% hint style="warning" %}
Quando **clientAuth** é definida como *true*, o administrador do sistema deve fornecer o arquivo **certificate.pfx** para os usuários finais.
{% endhint %}

### Criptografia da senha do Banco de Dados

No arquivo `config.properties`, o parâmetro `jdbc.password` é uma senha criptografada. Para gerar a senha criptografada, siga os seguintes passos:

1. Vá para o seguinte diretório:

   ```sh
   cd /var/lib/tomcats/bcc/webapps/gbs-bcc-server/WEB-INF/lib
   ```
2. Execute o comando:

   ```sh
   java -cp gbs-common-db-<versão>.jar com.griaule.commons.util.EncryptUtil <senhaDesejada>
   ```
3. A senha criptografada aparecerá depois da mensagem: *"Encrypted password is:"*

{% hint style="info" %}
Guarde a senha criptografada. Ela será usada em configurações posteriores.
{% endhint %}

### Arquivo de Configuração da Aplicação

Para configurar o arquivo, abra-o com:

```sh
vi /var/lib/tomcats/best/conf/config.properties
```

As mudanças mais importantes nesse arquivo são os parâmetros `jdbc.url`, `jdbc.username`, `jdbc.password` e `gbds.url`. Configure-os de acordo com seu ambiente.

O arquivo de configuração completa é mostrado na seção [Exemplo do Arquivo de Configuração](#exemplo-do-arquivo-de-configuracao)

{% hint style="info" %}
Lembre-se de substituir a senha criptografada gerada na seção [Criptografia da senha do Banco de Dados](#criptografia-da-senha-do-banco-de-dados) neste arquivo.
{% endhint %}

#### Configuração do BCC

O último passo é configurar o IP e a porta da aplicação que o usuário final irá acessar. Ele deve ser o mesmo IP e porta configurado na seção [Configuração do Tomcat](#configuracao-do-tomcat).

```properties
bcc.ip=<ip>
bcc.port=<port>
bcc.protocol=<protocol>
```

{% hint style="warning" %}
Certifique-se de que os parâmetros de configuração `bcc.ip`, `bcc.port` e `bcc.protocol` estejam corretamente especificados no arquivo `config.properties`. Em diversos casos, o IP será o mesmo para diversas aplicações. Contudo, cada aplicação possuirá uma porta **diferente e única**.
{% endhint %}

## Finalizando as Configurações

Após completar todos os passos de configuração, volte para o [Manual de Instalação do GBS Apps - Seção de Configuração](https://docs.griaule.com/gbsappssetup#configuracoes).

## Exemplo do Arquivo de Configuração

Essa seção mostra um exemplo do arquivo `config.properties`.

```properties
# GBS BCC Server

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.0.189:3306/bcc
jdbc.username=root
jdbc.password=CDrt8vbewA2YAubPNOLZkw==
jdbc.dialect=org.hibernate.dialect.MySQLDialect
jdbc.showSql=false

locale=en_us

gbds.url=http://192.168.0.105:8085
gbds.user=gbds.authenticate
gbds.key=griaule.123
gbds.logLevel=DEBUG
gbds.timeout=300
gbds.enroll.priority=DEFAULT_PRIORITY
gbds.search.priority=DEFAULT_PRIORITY
gbds.mock=false

queuePooling=true

bcc.localPort=64041
minimumBiometrics=1
sequenceControlType=NONE
listFields=BIOGRAPHIC:birthDate

databaseProfileDays=30
operationMode=ONLINE

saveDirectory=C:/Users/griaule/Documents

sequenceControlType=CTRL_442
fingerprint.useSDK=true

bcc.ip=
bcc.port=
bcc.protocol=

bccService.location=
```
