Tempo aproximado para leitura: 00:01:48 min
Ocorrência
O produto Datasul com Tomcat não permite requisições para servidores diferentes, o que reflete em bloqueio das requisições pelo CORS.
Ambiente
Framework - Framework (Linha Datasul) - Tomcat - Todas as versões
Causa
Este incidente ocorre pois nativamente o Datasul com o Tomcat não atua nas Headers das requisições e credenciais para trafegarem em requisições do tipo CORS.
Solução
Para adequar o produto Datasul com Tomcat e realizar o devido gerenciamento das conexões, é necessário implementar o Datasul Valve, conforme procedimento abaixo:
1) Edite o arquivo server.xml localizado no diretório conf do Tomcat;
2) Adicione as linhas abaixo como elemento da tag Host:
<Valve className="com.totvs.valve.TotvsCorsValve"
allowHeaders="Content-Type,Accept,Accept-Language,Content-Language,Authorization,tenantId,userId,companyId,authorization,returnformatversion"
contextsToValidate="/totvs-login,/totvs-rest,/dts,/api,/webexecbo"
allowOrigin="*"
allowMethods="GET, POST, DELETE, PUT, PATCH, HEAD, OPTIONS"
allowCredential="true" />
3) Adicione o arquivo totvs-valve-1.0.jar no diretório lib, relacionada à instância do Tomcat. Este arquivo pode ser encontrado em anexo.
Importante
A tag Valve deve estar configurada como o último elemento da tag Host. Caso exista algum Header da request diferente dos informados anteriormente - allowHeaders, estes devem ser incluídos nessa tag.
Caso seja necessário restringir o acesso de acordo com o servidor de origem, o mesmo deve ser informado no atributo allowOrigin no formato <protocolo>://<servidor>:<porta>.
Exemplo: allowOrigin="http://localhost:8080"
Anexo
Arquivo totvs-valve-1.0.jar para salvar no diretório lib, relacionada à instância do Tomcat.
0 Comentários