Uma aplicação completa em Spring Boot para cadastro, autenticação e gerenciamento de usuários, com layout modular, envio de e-mails simulado, e suporte à internacionalização.
Este projeto demonstra um sistema de CRUD de Usuários com:
- Backend em Spring Boot
- Segurança via Spring Security
- Layout com Apache Tiles
- Persistência de dados com MySQL
- Envio de e-mails (simulado)
- Internacionalização com suporte a múltiplos idiomas
- Cadastro de Usuários: Com validação e verificação de e-mail único
- Login Seguro: Usando Spring Security e senhas com BCrypt
- Logout Seguro: Usando Spring Security Config
- Listagem e Filtro: Paginação com busca por nome
- Edição de Usuários: Atualização de dados, e-mail e senha
- Mensagens Multilíngue:
pteencom arquivos de properties - Layout Modular: Com Apache Tiles e JSP
- Feedback Instantâneo: Validações e mensagens via AJAX
Controller (Apresentação)
↓
Service (Regra de Negócio)
↓
Repository (Persistência)
↓
Model (Entidades)
- Java 11
- Spring Boot 2.7.x
- Spring MVC / JPA / Security / Validation
- MySQL
- Apache Tiles
- JUnit 5 + Mockito
Veja o pom.xml para mais detalhes das dependências.
User: Entidade JPA com campos principais e datasUserRegistrationDto: DTO para cadastro/ediçãoUserServiceImpl: Lógica de negócio principalUserRepository: Acesso a dados com consultas customizadas
Mensagens em pt e en são carregadas pela MessageSourceConfig, aplicadas em validações e respostas para o cliente conforme o Locale.
- Layout principal em
WEB-INF/tiles.xml - Páginas públicas:
sign-in.jsp,sign-up.jsp - Páginas autenticadas:
list-users.jsp,edit-user.jsp - Recursos estáticos: CSS, JS, imagens em
/static/assets - AJAX para feedback em tempo real durante o registro
- Login: Formulário em
/login, autentica via/j_spring_security_check - Logout: Acessível em
/logout - Rotas públicas:
/assets/**,/register,/forgot-password(forgot-password não finalizada) - Proteção: Demais rotas requerem autenticação
- CSRF: Desativado para facilitar uso com AJAX
UserServiceImplTest: Testes com JUnit/Mockito para:- Cadastro com sucesso
- E-mail duplicado
- Criptografia da senha
Spring-na-praticaApplicationTests: Verifica se o contexto Spring carrega corretamente
Made with 💚 using Spring Boot.