Skip to content

Commit

Permalink
bora familia
Browse files Browse the repository at this point in the history
  • Loading branch information
gianluca-magnabosco committed Feb 2, 2023
1 parent 778cbe8 commit f5a661e
Show file tree
Hide file tree
Showing 56 changed files with 702 additions and 632 deletions.
54 changes: 54 additions & 0 deletions src/java/com/ufpr/tads/web2/controller/LoginServlet.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package com.ufpr.tads.web2.controller;

import com.ufpr.tads.web2.exception.DAOException;
import jakarta.servlet.RequestDispatcher;
import java.io.IOException;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import com.ufpr.tads.web2.model.beans.LoginBean;
import com.ufpr.tads.web2.model.domain.User;
import com.ufpr.tads.web2.model.facade.LoginFacade;


@WebServlet(name = "LoginServlet", urlPatterns = {"/login"})
public class LoginServlet extends HttpServlet {

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String userEmail = request.getParameter("email");
String userPassword = request.getParameter("password");

LoginBean login = new LoginBean();
User user = new User();

try {
user = LoginFacade.login(userEmail, userPassword, login);

if (user == null) {
throw new DAOException("Usuário inválido!");
}
} catch (DAOException e) {
e.printStackTrace();
RequestDispatcher loginDispatcher = request.getRequestDispatcher("/login.jsp");
request.setAttribute("message", "E-mail ou senha inválidos!");
loginDispatcher.forward(request, response);
}

HttpSession session = request.getSession();
session.setAttribute("login", login);
if (user.getRole().equals("Cliente")) {
response.sendRedirect("cliente/inicio.jsp");
return;
}

response.sendRedirect("funcionario/inicio.jsp");
return;
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package servlets;
package com.ufpr.tads.web2.controller;

import jakarta.servlet.RequestDispatcher;
import java.io.IOException;
Expand Down
60 changes: 60 additions & 0 deletions src/java/com/ufpr/tads/web2/controller/RegistroServlet.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package com.ufpr.tads.web2.controller;

import com.ufpr.tads.web2.exception.AppException;
import java.io.IOException;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import com.ufpr.tads.web2.model.facade.RegistroFacade;



@WebServlet(name = "RegistroServlet", urlPatterns = {"/registrar"})
public class RegistroServlet extends HttpServlet {

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");

String userNome = request.getParameter("nome");
String userCpf = request.getParameter("cpf");
String userEmail = request.getParameter("email");
String userPhoneNumber = request.getParameter("telefone");
String userAddressCep = request.getParameter("cep");
String userAddressLogradouro = request.getParameter("logradouro");
String userAddressNumero = request.getParameter("numero");
String userAddressCidade = request.getParameter("localidade");
String userAddressEstado = request.getParameter("uf");
String userAddressBairro = request.getParameter("bairro");
String userAddressComplemento = request.getParameter("complemento");


try {
RegistroFacade.registrar(userNome,
userCpf,
userEmail,
userPhoneNumber,
userAddressCep,
userAddressLogradouro,
userAddressNumero,
userAddressCidade,
userAddressEstado,
userAddressBairro,
userAddressComplemento);

} catch (AppException e) {
String errorMessage = URLEncoder.encode(e.getMessage(), "UTF-8");
response.sendRedirect("registrar.jsp?message=" + errorMessage);
return;
}

String userEmailParameter = URLEncoder.encode(userEmail, "UTF-8");
response.sendRedirect("cliente/cadastroRealizado.jsp?email=" + userEmailParameter);
}

}
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package servlets;
package com.ufpr.tads.web2.controller;

import beans.ConfigBean;
import com.ufpr.tads.web2.model.beans.ConfigBean;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;


@WebServlet(name = "StartupServlet", urlPatterns = {"/StartupServlet"}, loadOnStartup = 1)
@WebServlet(name = "StartupServlet", urlPatterns = {"/startup"}, loadOnStartup = 1)
public class StartupServlet extends HttpServlet {

public void init(ServletConfig config) throws ServletException {
ConfigBean conf = new ConfigBean();
conf.setEmail("lol_lavanderia-online@outlook.com");
conf.setEmail("lol_lavanderia_online-reborn@outlook.com");

ServletContext ctx = config.getServletContext();
ctx.setAttribute("configuracao", conf);
Expand Down
21 changes: 21 additions & 0 deletions src/java/com/ufpr/tads/web2/exception/AppException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.ufpr.tads.web2.exception;

/**
*
* @author Gian
*/
public class AppException extends Exception {

public AppException() {

}

public AppException(String errorMessage) {
super(errorMessage);
}

public AppException(String errorMessage, Throwable throwable) {
super(errorMessage, throwable);
}
}

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package exception;
package com.ufpr.tads.web2.exception;

public class DAOException extends Exception {
public class DAOException extends AppException {

public DAOException() {

Expand All @@ -15,5 +15,3 @@ public DAOException(String errorMessage, Throwable throwable) {
}
}


// TODO: Fazer algum mecanismo genérico pra erros de DAO, redirect pra ErrorPage ou sei la
21 changes: 21 additions & 0 deletions src/java/com/ufpr/tads/web2/exception/DadoInvalidoException.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.ufpr.tads.web2.exception;

/**
*
* @author Gian
*/
public class DadoInvalidoException extends AppException {

public DadoInvalidoException() {

}

public DadoInvalidoException(String errorMessage) {
super(errorMessage);
}

public DadoInvalidoException(String errorMessage, Throwable throwable) {
super(errorMessage, throwable);
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.ufpr.tads.web2.exception;

/**
*
* @author Gian
*/
public class ErroAoEnviarEmailException extends AppException {

public ErroAoEnviarEmailException() {

}

public ErroAoEnviarEmailException(String errorMessage) {
super(errorMessage);
}

public ErroAoEnviarEmailException(String errorMessage, Throwable throwable) {
super(errorMessage, throwable);
}
}

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package beans;
package com.ufpr.tads.web2.model.beans;

import java.io.Serializable;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package beans;
package com.ufpr.tads.web2.model.beans;

import java.io.Serializable;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package dao;
package com.ufpr.tads.web2.model.dao;

import domain.Cidade;
import domain.Estado;
import exception.DAOException;
import com.ufpr.tads.web2.model.domain.Cidade;
import com.ufpr.tads.web2.model.domain.Estado;
import com.ufpr.tads.web2.exception.DAOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package dao;
package com.ufpr.tads.web2.model.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import exception.DAOException;
import com.ufpr.tads.web2.exception.DAOException;

public class ConnectionFactory implements AutoCloseable {
private static final String DRIVER = "org.postgresql.Driver";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dao;
package com.ufpr.tads.web2.model.dao;

import java.util.List;
import exception.DAOException;
import com.ufpr.tads.web2.exception.DAOException;

public interface DAO<T> {
T search(String name) throws DAOException;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package dao;
package com.ufpr.tads.web2.model.dao;

import domain.Cidade;
import domain.Endereco;
import domain.Estado;
import exception.DAOException;
import com.ufpr.tads.web2.model.domain.Cidade;
import com.ufpr.tads.web2.model.domain.Endereco;
import com.ufpr.tads.web2.model.domain.Estado;
import com.ufpr.tads.web2.exception.DAOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dao;
package com.ufpr.tads.web2.model.dao;

import domain.Estado;
import exception.DAOException;
import com.ufpr.tads.web2.model.domain.Estado;
import com.ufpr.tads.web2.exception.DAOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package dao;
package com.ufpr.tads.web2.model.dao;

import domain.Cidade;
import domain.Endereco;
import domain.Estado;
import com.ufpr.tads.web2.model.domain.Cidade;
import com.ufpr.tads.web2.model.domain.Endereco;
import com.ufpr.tads.web2.model.domain.Estado;
import java.util.List;
import domain.User;
import exception.DAOException;
import com.ufpr.tads.web2.model.domain.User;
import com.ufpr.tads.web2.exception.DAOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package domain;
package com.ufpr.tads.web2.model.domain;

import java.io.Serializable;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package domain;
package com.ufpr.tads.web2.model.domain;

import java.io.Serializable;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package domain;
package com.ufpr.tads.web2.model.domain;

import java.io.Serializable;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package domain;
package com.ufpr.tads.web2.model.domain;

import java.io.Serializable;

Expand Down
44 changes: 44 additions & 0 deletions src/java/com/ufpr/tads/web2/model/facade/LoginFacade.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.ufpr.tads.web2.model.facade;

import com.ufpr.tads.web2.exception.DAOException;
import com.ufpr.tads.web2.model.beans.LoginBean;
import com.ufpr.tads.web2.model.dao.ConnectionFactory;
import com.ufpr.tads.web2.model.dao.UserDAO;
import com.ufpr.tads.web2.model.domain.User;
import com.ufpr.tads.web2.security.HashFunction;

/**
*
* @author Gian
*/
public class LoginFacade {

public static User login(String userEmail, String userPassword, LoginBean login) {
if (!userEmail.matches("[a-zA-Z0-9._%+-]{1,64}@(?:[a-zA-Z0-9-]{1,63}\\.){1,125}[a-zA-Z]{2,63}") || !userPassword.matches(".+")) {
return null;
}

String hashedUserPassword = HashFunction.getHash(userPassword);

try (ConnectionFactory factory = new ConnectionFactory()) {
UserDAO dao = new UserDAO(factory.getConnection());

User user = dao.validateLogin(userEmail, hashedUserPassword);

if (user.getFullName() == null) {
return null;
}

login.setId(user.getId());
login.setNome(user.getFullName());
login.setEmail(user.getEmail());

return user;
}
catch (DAOException e) {
e.printStackTrace();
}

return null;
}
}
Loading

0 comments on commit f5a661e

Please sign in to comment.