Bibliotecas de auditoria em Java: avaliação do cenário atual e proposta de uma nova solução

dc.contributor.advisorCacho, Nélio Alessandro Azevedo
dc.contributor.advisorLatteshttp://lattes.cnpq.br/4635320220484649
dc.contributor.authorPereira, Maria Eduarda Eloi
dc.contributor.authorID0009-0005-1192-7316
dc.contributor.authorLatteshttp://lattes.cnpq.br/4529361675774596
dc.contributor.referees1Lopes, Frederico Araújo da Silva
dc.contributor.referees1Latteshttp://lattes.cnpq.br/9177823996895375
dc.contributor.referees2Souza, Arthur Emanoel Cássio da Silva e
dc.contributor.referees2Latteshttp://lattes.cnpq.br/0936695072170254
dc.date.accessioned2025-07-17T18:28:51Z
dc.date.available2025-07-17T18:28:51Z
dc.date.issued2025-07-09
dc.description.abstractAudit logs are an essential requirement in contemporary software systems, fundamental to ensuring security, traceability, and compliance with regulations. However, a critical analysis of auditing solutions for Java applications reveals a limitation: most libraries focus on the persistence layer, failing to capture relevant events from the business layer (even those not related to the database) and sometimes presenting inflexibility in log writing mechanisms or a high impact on performance. Given this scenario, this work aimed to evaluate current audit solutions in Java applications, identify their limitations, and propose a new approach. For this, a comparative analysis of the Spring Data Envers, JaVers, Logbook, and Audit4j tools was carried out in a demonstration application, considering implementation complexity, data volume, and performance. Subsequently, a new library was developed with custom annotations, Aspect-Oriented Programming, and asynchronous processing, based on the Open/Closed Principle to be extensible. As a result, the proposed library allows the developer to easily integrate an audit that logs data in MongoDB or SLF4J, with the possibility of extending interfaces to customize the writing of logs, obtaining the author of the action, and others. The evaluation carried out demonstrated that the proposed approach captures much more comprehensive contextual information than solutions like Spring Data Envers, while maintaining a similar performance impact. It is concluded that the work offers a flexible and low-coupling alternative for implementing auditing in any method or service of the application.
dc.description.resumoOs logs de auditoria são um requisito essencial em sistemas de software contemporâneos, fundamental para garantir segurança, rastreabilidade e conformidade com regulamentações. Contudo, uma análise crítica das soluções de auditoria para aplicações Java revela uma limitação: a maioria das bibliotecas concentra-se na camada de persistência, falhando em capturar eventos relevantes da camada de negócio (até mesmo não relacionados a banco de dados) e apresentando, por vezes, inflexibilidade no mecanismo de escrita dos logs ou alto impacto no desempenho. Diante desse cenário, este trabalho objetivou avaliar as soluções atuais de auditoria em aplicações Java, identificar suas limitações e propor uma nova abordagem. Para isso, foi realizada uma análise comparativa das ferramentas Spring Data Envers, JaVers, Logbook e Audit4j em uma aplicação de demonstração, considerando complexidade de implementação, volume de dados e desempenho. Em seguida, foi desenvolvida uma nova biblioteca com anotações customizadas, Programação Orientada a Aspectos e processamento assíncrono, fundamentada no Princípio Aberto-Fechado para ser extensível. Como resultado, a biblioteca proposta permite que o desenvolvedor integre facilmente uma auditoria que loga dados no MongoDB ou SLF4J, com a possibilidade de estender interfaces para personalizar a escrita dos logs, a obtenção do autor da ação e outros. A avaliação realizada demonstrou que a abordagem proposta captura informações contextuais muito mais abrangentes que soluções como o Spring Data Envers, mantendo um impacto de performance similar. Conclui-se que o trabalho oferece uma alternativa flexível e de baixo acoplamento para implementar auditoria em qualquer método ou serviço da aplicação.
dc.identifier.citationPEREIRA, Maria Eduarda Eloi. Bibliotecas de auditoria em Java: avaliação do cenário atual e proposta de uma nova solução. Orientador: Nélio Alessandro Azevedo Cacho. 2025. 51 f. Trabalho de Conclusão de Curso (Graduação em Engenharia de Software) - Departamento de Informática e Matemática Aplicada, Universidade Federal do Rio Grande do Norte, Natal, 2025.
dc.identifier.urihttps://repositorio.ufrn.br/handle/123456789/64550
dc.language.isopt_BR
dc.publisherUniversidade Federal do Rio Grande do Norte
dc.publisher.countryBrazil
dc.publisher.departmentDepartamento de Informática e Matemática Aplicada
dc.publisher.initialsUFRN
dc.publisher.programEngenharia de Software
dc.rightsAttribution 3.0 Brazilen
dc.rights.urihttp://creativecommons.org/licenses/by/3.0/br/
dc.subjectAuditoria de software
dc.subjectLogs de auditoria
dc.subjectJava
dc.subjectProgramação orientada a aspectos
dc.subjectRastreabilidade
dc.subject.cnpqCIENCIAS EXATAS E DA TERRA
dc.titleBibliotecas de auditoria em Java: avaliação do cenário atual e proposta de uma nova solução
dc.typebachelorThesis

Arquivos

Pacote Original

Agora exibindo 1 - 1 de 1
Nenhuma Miniatura disponível
Nome:
tcc_eng_software_maria_final.pdf
Tamanho:
1.33 MB
Formato:
Adobe Portable Document Format
Nenhuma Miniatura disponível
Baixar

Licença do Pacote

Agora exibindo 1 - 1 de 1
Nenhuma Miniatura disponível
Nome:
license.txt
Tamanho:
1.53 KB
Formato:
Item-specific license agreed upon to submission
Nenhuma Miniatura disponível
Baixar