Skip to content

Aplicação consiste em um login simples usando Spring Boot + Spring MVC + Thymeleaf e Spring Security. Objetivos: aplicação dos conceitos adquiridos sobre o Spring Security, implemetação de uma authenticação simples e proteção básica contra ataques de força bruta.

Notifications You must be signed in to change notification settings

Denis-san/spring-mvc-login-ls

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

spring-mvc-login-ls

Aplicação consiste em um login simples usando Spring Boot + Spring MVC + Thymeleaf e Spring Security. Objetivos: aplicação dos conceitos adquiridos sobre o Spring Security, implemetação de uma autenticação simples e proteção básica contra ataques de força bruta.

☁️ Você pode testar essa aplicação em: https://spring-mvc-login-ls.herokuapp.com/

Ferramentas e tecnologias usadas:

Linguagem base:

  • Java;

Para persitência de dados:

  • JPA (Java Persitence API);
  • Hibernate;

Banco de dados:

  • PostgreSQL;

Para construção da aplicação web:

  • Spring Framework;
  • Spring Boot;
  • Spring MVC;

Como template, (view) da aplicação:

  • Thymeleaf;
  • HTML;

Para estilização das páginas da aplicação:

  • Bootstrap;
  • javascript;
  • css;

Além de:

  • Spring Security, para aspectos de segurança da aplicação;
  • Hibernate Validator, para validação server-side;
  • Heroku, implantação da aplicação na nuvem;

Algumas características:

  • Cadastro/registro de usuários
    É possível registrar um usuário desde que este não exista no banco de dados, essa verificação é feita comparando somente seu "nome de login".
  • Validação server-side
    Alguns campos são validados de acordo com algumas regras, por exemplo, nome, sobrenome, alguns campos do endereço do usuario não podem estar em branco e ou vazio, assim como nome de login e senha, esta ultima possui algumas validações a mais como: possuir mais de 8 caracteres e ser equivalente á senha inserida no campo de confirmação.
  • Login
    A partir desse cadastro, onde são informados nome de login criada uma senha, pode-se utilizar essas credenciais para realizar um login na aplicação.
  • Validações
    Obviamente, caso o usuário insira suas credenciais erradas, o sistema lhe informará que houve um erro ao realizar a autenticação, desde validções com javascript à validações server-side.
  • Limitando tentativas sem sucesso de logins (prevenção básica contra ataques de força bruta)
    A aplicação permite apenas 5 tentativa ao o usuário para que este tente realizar o login, caso ele exceda esse limite o sistema "bloqueia" seu endereço de ip, ou seja, o sistema impede que sejam realizadas novas tentativas de autenticação vindas desse endereço de internet, esse bloqueio permanece até às 23:59 horas do dia presente, permitindo e ou desbloqueando o acesso à pagina de login após esse período.
  • Outras caracteŕisticas:
    • Auto login após um registro/cadastro bem sucedido;
    • Caso um usuário esteja logado, este é impedido de acessar as páginas de cadastro e login, sendo redirecionado à pagina inicial;

  • Sugestões de correções e adição de funcionalidades futuras
    • Recuperação de login;
    • Identificação de login por meio de email do usuário, para que permita ao sistema a opção de recuperação da conta do usuário;
    • Bloqueio de uma conta caso essa, esteja recebendo um número limitante de "bloqueio de ip";

📖 Essa é uma aplicação fictícia, construída apenas para fins estudantis.

About

Aplicação consiste em um login simples usando Spring Boot + Spring MVC + Thymeleaf e Spring Security. Objetivos: aplicação dos conceitos adquiridos sobre o Spring Security, implemetação de uma authenticação simples e proteção básica contra ataques de força bruta.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published