Sistema legado para administração de certificados digitais.
- Visão Geral do Sistema
- Arquitetura e Tecnologias
- Estrutura de Diretórios
- Fluxo de Funcionamento
- Principais Componentes
- Banco de Dados
- Configurações e Deploy
- Customização e Extensibilidade
- Boas Práticas e Observações
- Referências e Contatos
O certdigital é um sistema legado para administração de certificados digitais, desenvolvido em Java 8, utilizando o framework Struts, rodando em um servidor Tomcat e integrado a um banco de dados PostgreSQL. Seu objetivo é gerenciar entidades, operadores, empresas e certificados digitais, fornecendo funcionalidades de cadastro, consulta, manutenção e geração de relatórios.
- Linguagem: Java 8
- Framework Web: Struts 1.x
- Servidor de Aplicação: Tomcat
- Banco de Dados: PostgreSQL
- Build: Ant
- Front-end: JSP, HTML, CSS, JavaScript
- Padrão de Projeto: MVC (Model-View-Controller)
- Outras Bibliotecas: Commons (BeanUtils, Collections, DBCP, Logging, etc.), Log4j, Struts, JDBC drivers
certdigital/
│
├── documentos/ # Documentação e scripts de banco
│ └── estrutura.sql
│
├── fontes/
│ ├── ant/ # Scripts de build (Ant)
│ ├── classes/ # Classes compiladas (.class)
│ ├── configuracoes/ # Configurações de banco e drivers
│ ├── lib/ # Bibliotecas Java (.jar)
│ └── src/ # Código-fonte Java (.java)
│
├── web/ # Aplicação web (JSP, recursos estáticos)
│ ├── _css/ # Arquivos de estilo
│ ├── _img/ # Imagens
│ ├── _js/ # Scripts JavaScript
│ ├── _menu/ # Menus e navegação
│ ├── APP_TEMPLATES/ # Templates JSP reutilizáveis
│ ├── SCRIPT/ # Scripts auxiliares
│ ├── WEB-INF/ # Configurações do webapp (Struts, web.xml, libs)
│ └── *.jsp, *.htm # Páginas JSP e HTML
- View: JSPs e HTML em
/web/ - Controller: Actions do Struts em
br.certdigital.web.* - Model: Facades, DAOs e VOs em
br.certdigital.facade,br.certdigital.dao,br.certdigital.vo
- Usuário acessa uma página JSP (ex:
listarCertificados.jsp) - Requisição é roteada pelo Struts (configurado em
struts-config.xml) - Action correspondente é executada (ex:
CertificadoAction) - Action utiliza Facade/DAO para acessar dados
- Dados são retornados como VO (Value Object)
- JSP exibe os dados ao usuário
br.certdigital.dao
Acesso a dados (CRUD) para entidades do sistema.br.certdigital.facade
Fachada de serviços, centraliza regras de negócio.br.certdigital.vo
Objetos de valor (Value Objects) para transferência de dados.br.certdigital.web
Actions do Struts, controladores das requisições web.br.certdigital.shared
Utilitários, exceções, segurança, formatação, etc.br.certdigital.tools
Utilitários de baixo nível, integração com banco, logging, etc.br.certdigital.view
Helpers para lógica de apresentação.
struts-config.xml
Mapeamento de Actions, Forms e Forwards do Struts.web.xml
Configuração do webapp, servlets, filtros, listeners.log4j.properties
Configuração de logging.db2400-ds.xml/config_db2_jboss.txt
Configuração de datasources para banco de dados.
- Script de estrutura:
documentos/estrutura.sql - Principais entidades:
Empresas, Operadores, Certificados, Produtos, Preços, Entidades, Regras de Acesso. - Conexão:
Configurada via arquivos emfontes/configuracoes/e drivers emfontes/configuracoes/drivers/lib/.
- Utiliza Ant (
fontes/ant/build.xml) para compilar e empacotar o projeto.
- O artefato gerado (provavelmente um
.war) deve ser colocado no diretóriowebappsdo Tomcat. - Certifique-se de que as bibliotecas necessárias estejam em
WEB-INF/lib. - Configure o datasource do PostgreSQL conforme os arquivos de configuração.
- Bibliotecas Java em
fontes/lib/eweb/WEB-INF/lib/. - Drivers JDBC para PostgreSQL e outros bancos suportados.
- Novas funcionalidades:
Siga o padrão MVC, criando novos VOs, DAOs, Facades, Actions e JSPs conforme necessário. - Internacionalização:
Mensagens e labels emApplicationResources.properties. - Templates JSP:
Utilize arquivos emAPP_TEMPLATES/para padronizar mensagens e componentes.
- Legado:
O sistema utiliza Struts 1.x, que está obsoleto. Considere migração futura para frameworks modernos. - Java 8:
Não utilize recursos de versões superiores. - Segurança:
Atenção a SQL Injection e XSS, pois o sistema é antigo. - Logging:
Utilize o Log4j para rastreabilidade. - Backup:
Sempre faça backup do banco antes de alterações.
Este projeto pode ser executado facilmente em containers Docker, incluindo a aplicação Java (Tomcat) e o banco de dados PostgreSQL.
-
Clone o repositório:
git clone <repo-url> cd certdigital
-
Build e deploy dos containers:
docker-compose up --build
Isso irá:
- Subir o banco PostgreSQL com a estrutura definida em
documentos/estrutura.sql. - Buildar a aplicação Java com Ant e rodar no Tomcat.
- Subir o banco PostgreSQL com a estrutura definida em
-
Acessar a aplicação:
-
Banco de Dados:
- Host:
localhost - Porta:
5432 - Banco:
certdigital - Usuário:
certdig - Senha:
certdig!1234
- Host:
- O build do projeto é feito automaticamente no container.
- O script SQL é executado apenas no primeiro start do banco.
- Se alterar o SQL, remova o volume do banco para reexecutar a estrutura:
docker-compose down -v docker-compose up --build
- Documentação Struts:
Struts 1.x Documentation - Documentação Tomcat:
Tomcat Documentation - Documentação PostgreSQL:
PostgreSQL Documentation
Responsável Técnico:
Paulo César Pires de Aragão
paragao01@gmail.com
(21) 98272-9030
Esta documentação foi gerada automaticamente a partir da análise da estrutura do projeto. Para detalhes específicos de regras de negócio, consulte os arquivos de código-fonte em
fontes/src/br/certdigital/.