Ir para o conteúdo principal

Análise para integração do consumo das informações do Consignação no Portal do servidor (Sistema Consignação)

Data de elaboração 16/21/08/2023
Responsável pelo estudo
  1. Emanuel Rufino Alcantara de Lima (Analista)
Equipe do estudo
  1. Arthur Leandro dos Anjos Nunes (Product Owner)
  2. André Honório de Andrade Silva (Técnico)
  3. Alef Carvalho (Analista)
  4. Gustavo Felix (Analista)
  5. Thiago Alencar (Estagiário)
Alvo Portal do Servidor
Origem

Implementação: Análise para integração do consumo das informações do Consignação no Portal do servidor 

Objetivo

Levantar as formas de integração para consumo das informações do consignação pelo portal do servidor

Documentação correlata
Observações O presente estudo pretende também pretende levantar as Historias dos Cards para a Sprint 
1. Objetivo

O Presente estudo objetiva levantar as formas de integração para consumo das informações do consignação pelo portal do servidor.

1.1 JUSTIFICATIVA

O portal do servidor foi criado para facilitar o acesso a várias informações por meio de integrações com diferentes sistemas. Um exemplo disso é o sistema de consignação, que contém informações importantes para o servidor. Para garantir que essas informações sejam exibidas de forma segura, a integração entre o sistema consignação e o portal do servidor deve ser configurada para acessá-las de maneira confiável.

1.2 RESULTADOS ESPERADOS

Espera-se que após a conclusão desse estudo seja possível mostrar como será possível a forma que o portal do servidor acessará as informações do sistema consignação.

2. Introdução

Em um esforço contínuo para melhorar a eficiência e a experiência do usuário, a integração entre tecnologias diferentes desempenha um papel fundamental. No caso em questão, a sinergia entre um portal do servidor construído em .NET e uma API Java Spring Boot oferece uma solução robusta para acessar informações cruciais sobre empréstimos consignados.

Benefícios da Integração:

  1. Acesso a Dados Atualizados: O portal do servidor pode solicitar informações atualizadas diretamente da API, garantindo que os detalhes de empréstimos consignados estejam sempre precisos.
  2. Segurança Reforçada: A integração é projetada para manter altos padrões de segurança. As políticas de autenticação e autorização garantem que apenas usuários autorizados tenham acesso aos dados sensíveis.

  3. Aprimoramento da Experiência do Usuário: A integração transparente permite que os usuários acessem informações de empréstimos consignados sem a necessidade de alternar entre diferentes sistemas.

3. Desenvolvimento

3.1 CENÁRIO ATUAL

Em um cenário digital cada vez mais interconectado, a segurança da informação tornou-se um aspecto crítico para qualquer aplicação. Uma das maneiras fundamentais de proteger recursos e dados é por meio de autenticação robusta em APIs. O Java Spring Boot, um framework de desenvolvimento rápido para aplicações Java, oferece ferramentas poderosas para implementar diversos métodos de autenticação, proporcionando um ambiente seguro para acesso aos endpoints.

O Portal do Servidor .NET:

O portal do servidor, construído na plataforma .NET, proporciona aos funcionários e colaboradores um acesso centralizado a uma variedade de serviços e informações. Com uma interface intuitiva e recursos personalizados, o portal torna a navegação e a interação mais convenientes, otimizando os processos internos.

A API Java Spring Boot:

Do outro lado, a API Java Spring Boot é a força motriz que facilita o acesso seguro e eficiente às informações de empréstimos consignados do servidor. Baseada na robusta estrutura do Spring Boot, a API oferece a capacidade de expor dados relevantes por meio de endpoints bem definidos. Isso permite que o portal do servidor recupere os detalhes dos empréstimos consignados de maneira rápida e confiável.

 

3.2 SOLUÇÃO PROPOSTA

FoiPrimeiramente, foi realizado um testeestudo de integraçcomo funciona a autenticação entreno Java Spring Boot. Após isso, foi utilizada a ferramenta do Postman para se verificar a geração do token e o portalfuncionamento da API obtendo-se os dados através das rotas. Posteriormente, foi criada uma funcionalidade no Portal do servidorServidor, de maneira local, para testar a autenticação e obtenção dos dados. Essa funcionalidade está descrita abaixo como referência para possíveis novas integrações com outros sistemas .NET.

Credenciais

Foi verificado que para se autenticar à API Java SpringBoot, devem ser enviadas as app credentials e as user credentials. Assim será descritogerado abaixo:um token JWT (Json Web Token).

App Credentials: _clientId e _clientSecret;

User Credentials: _loginConsignacao e _senhaConsignacao

 

3.21) HISTÓRIASMétodo DEAutenticar

USUÁRIO
private AutenticacaoDto Autenticar()
        {
            string username = _clientId;
            string password = _clientSecret;

            string credentials = $"{username}:{password}";
            byte[] credentialsBytes = Encoding.UTF8.GetBytes(credentials);
            string base64Credentials = Convert.ToBase64String(credentialsBytes);


            var credenciaisParaAutenticacaoDaAplicacao = new Dictionary<string, string>
            {
                { "Authorization", $"basic {base64Credentials}" },
            };

            var credenciaisParaAutenticacaoDoUsuario = new Dictionary<string, string>
            {
                { "username", _loginConsignacao },
                { "password", _senhaConsignacao },
                { "grant_type", "password" }
            };

            var auth = ConsumirApi.ObterToken<AutenticacaoDto>(UriConsignacaoApi, "/oauth/token", Method.POST, credenciaisParaAutenticacaoDoUsuario, credenciaisParaAutenticacaoDaAplicacao);

            return auth;
        }

 

Para2) aplicar a solução acima será necessário as seguintes histórias de usuários:

O que?PontosRegrasProduto
Criar tela com relatório de parcelas relatório de servidores cujo as averbações com o valor a pagar = 0 e quantidade de parcelas = 0 com tipo de empréstimo = 1, a partir de script de filtragem existente.8

Permitir apenas usuários administradores acessarem esta tela.

Consignação
Criar botão na tela de relatório, que acione uma funcionalidade de corrigir o status das averbações com o valor a pagar = 0 e quantidade de parcelas = 0 com tipo de empréstimo = 1. 8

Permitir apenas usuários administradores acessarem esta tela.

Consignação
Salvar log com informações sobre quem realizou a ação de corrigir status das averbações.5

Salvar logs com todas as informações pertinentes ao usuário.

Salvar informações de quais foram as averbações afetadas.

Consignação

3.3 POSSÍVEIS IMPEDIMENTOS

É possível que existam alguns problemas relacionados a tecnologia utilizada na criaçGeração do sistema,Token oude acesso

public static AutenticacaoDto ObterToken<T>(string uri, string rota, Method metodo, Dictionary<string, string> parameters = null, Dictionary<string, string> headers = null)
        {
            if (!uri.EndsWith("/"))
                uri += "/";
            if (rota.StartsWith("/"))
                rota.Remove(0, 1);

            try
            {
                RestClient client = new RestClient(uri);

                var request = new RestRequest(rota, metodo)
                {
                    RequestFormat = DataFormat.Json
                };

                if (parameters != null)
                {
                    foreach (var param in parameters)
                    {
                        request.AddParameter(param.Key, param.Value);
                    }
                }
                if (headers != null)
                {
                    foreach (var header in headers)
                    {
                        request.AddHeader(header.Key, header.Value);
                    }
                }
                request.AddHeader("Content-Type", "application/x-www-form-urlencoded");

                var response = client.Execute(request);
                var auth = JsonSerializer.Deserialize<AutenticacaoDto>(response.Content);

                return auth;
            }
            catch (Exception e)
            {
                throw e;
            }
        }

Obs: Incluir  o código da linha 32, para definir que os dados estão sendo passados pelo formato "application/x-www-form-urlencoded".

 

Com o token, basta incluir no headers e passar para o método ConsumirApi, conforme abaixo:

private Dictionary<string, string> Headers()
        {
            var auth = Autenticar();

            return new Dictionary<string, string>
            {
                { "Authorization", $"{auth.token_type} {auth.access_token}" },
            };
        }
public async Task<FuncionarioConsignacaoDto> ObterPorId(int id)
        {
            var funcionario = ConsumirApi.Consumir<FuncionarioConsignacaoDto>(UriConsignacaoApi, $"/funcionario/{id}", Method.GET, null, headers);
            return funcionario;
        }

No caso acima, a faltavariável deheaders disponibilidadeé atribuída no método construtor da CAGDclasse.

para colaboração com a CODE no desenvolvimento destas funcionalidades.

4. Conclusão

Conclui-Após uma análise da API do consignação, foi possível descrever o funcionamento e o código para se queobter aos entregadados destas funcionalidades complementares à quitação automática trarão benefícios aodo sistema e a todos os servidores que fazem empréstimo consignado.consignação.