From f1b8598d0320254a3fe1655d9cd4d688bc0e9007 Mon Sep 17 00:00:00 2001 From: Mykhailo Date: Sun, 6 Aug 2023 01:38:28 +0300 Subject: [PATCH 1/4] add my solution --- pom.xml | 2 +- .../java/taxi/controller/LoginController.java | 41 ++++++++++++ .../taxi/controller/LogoutController.java | 16 +++++ .../car/GetMyCurrentCarsController.java | 25 +++++++ .../driver/AddDriverController.java | 4 +- src/main/java/taxi/dao/CarDaoImpl.java | 4 ++ src/main/java/taxi/dao/DriverDao.java | 2 + src/main/java/taxi/dao/DriverDaoImpl.java | 34 ++++++++-- .../exception/AuthenticationException.java | 7 ++ src/main/java/taxi/model/Driver.java | 25 +++++++ .../taxi/service/AuthenticationService.java | 8 +++ .../service/AuthenticationServiceImpl.java | 27 ++++++++ .../java/taxi/service/DriverServiceImpl.java | 7 +- src/main/java/taxi/util/ConnectionUtil.java | 8 +-- .../taxi/web/filter/AuthenticationFilter.java | 45 +++++++++++++ .../webapp/WEB-INF/views/css/table_dark.css | 5 ++ src/main/webapp/WEB-INF/views/drivers/add.jsp | 46 ++++++++++++- src/main/webapp/WEB-INF/views/header.jsp | 27 ++++++++ src/main/webapp/WEB-INF/views/index.jsp | 2 + src/main/webapp/WEB-INF/views/login.jsp | 67 +++++++++++++++++++ src/main/webapp/web.xml | 36 ++++++++++ 21 files changed, 425 insertions(+), 13 deletions(-) create mode 100644 src/main/java/taxi/controller/LoginController.java create mode 100644 src/main/java/taxi/controller/LogoutController.java create mode 100644 src/main/java/taxi/controller/car/GetMyCurrentCarsController.java create mode 100644 src/main/java/taxi/exception/AuthenticationException.java create mode 100644 src/main/java/taxi/service/AuthenticationService.java create mode 100644 src/main/java/taxi/service/AuthenticationServiceImpl.java create mode 100644 src/main/java/taxi/web/filter/AuthenticationFilter.java create mode 100644 src/main/webapp/WEB-INF/views/header.jsp create mode 100644 src/main/webapp/WEB-INF/views/login.jsp diff --git a/pom.xml b/pom.xml index a043c369c..02df8cbab 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ mysql mysql-connector-java - 8.0.22 + 8.0.28 javax.servlet diff --git a/src/main/java/taxi/controller/LoginController.java b/src/main/java/taxi/controller/LoginController.java new file mode 100644 index 000000000..6fe09e602 --- /dev/null +++ b/src/main/java/taxi/controller/LoginController.java @@ -0,0 +1,41 @@ +package taxi.controller; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import taxi.exception.AuthenticationException; +import taxi.lib.Injector; +import taxi.model.Driver; +import taxi.service.AuthenticationService; + +public class LoginController extends HttpServlet { + private static final Injector injector = Injector.getInstance("taxi"); + private final AuthenticationService authenticationService = + (AuthenticationService) injector.getInstance(AuthenticationService.class); + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + req.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(req,resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + String username = req.getParameter("login"); + String password = req.getParameter("password"); + + try { + Driver driver = authenticationService.login(username, password); + HttpSession session = req.getSession(); + session.setAttribute("driver_id",driver.getId()); + resp.sendRedirect("/index"); + } catch (AuthenticationException e) { + req.setAttribute("errorMsg",e.getMessage()); + req.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(req,resp); + } + } +} diff --git a/src/main/java/taxi/controller/LogoutController.java b/src/main/java/taxi/controller/LogoutController.java new file mode 100644 index 000000000..826cb28c0 --- /dev/null +++ b/src/main/java/taxi/controller/LogoutController.java @@ -0,0 +1,16 @@ +package taxi.controller; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class LogoutController extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + req.getSession().invalidate(); + resp.sendRedirect("/index"); + } +} diff --git a/src/main/java/taxi/controller/car/GetMyCurrentCarsController.java b/src/main/java/taxi/controller/car/GetMyCurrentCarsController.java new file mode 100644 index 000000000..942e34da2 --- /dev/null +++ b/src/main/java/taxi/controller/car/GetMyCurrentCarsController.java @@ -0,0 +1,25 @@ +package taxi.controller.car; + +import java.io.IOException; +import java.util.List; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import taxi.lib.Injector; +import taxi.model.Car; +import taxi.service.CarService; + +public class GetMyCurrentCarsController extends HttpServlet { + private static final Injector injector = Injector.getInstance("taxi"); + private final CarService carService = (CarService) injector.getInstance(CarService.class); + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + Long driverId = (Long) req.getSession().getAttribute("driver_id"); + List carList = carService.getAllByDriver(driverId); + req.setAttribute("cars", carList); + req.getRequestDispatcher("/WEB-INF/views/cars/all.jsp").forward(req, resp); + } +} diff --git a/src/main/java/taxi/controller/driver/AddDriverController.java b/src/main/java/taxi/controller/driver/AddDriverController.java index 1db67730b..d3235bc2d 100644 --- a/src/main/java/taxi/controller/driver/AddDriverController.java +++ b/src/main/java/taxi/controller/driver/AddDriverController.java @@ -24,7 +24,9 @@ public void doGet(HttpServletRequest req, HttpServletResponse resp) public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { String name = req.getParameter("name"); String licenseNumber = req.getParameter("license_number"); - Driver driver = new Driver(name, licenseNumber); + String login = req.getParameter("login"); + String password = req.getParameter("password"); + Driver driver = new Driver(name, licenseNumber,login,password); driverService.create(driver); resp.sendRedirect(req.getContextPath() + "/drivers/add"); } diff --git a/src/main/java/taxi/dao/CarDaoImpl.java b/src/main/java/taxi/dao/CarDaoImpl.java index 586ccb595..622ef69db 100644 --- a/src/main/java/taxi/dao/CarDaoImpl.java +++ b/src/main/java/taxi/dao/CarDaoImpl.java @@ -211,10 +211,14 @@ private Driver parseDriverFromResultSet(ResultSet resultSet) throws SQLException Long driverId = resultSet.getObject("id", Long.class); String name = resultSet.getString("name"); String licenseNumber = resultSet.getString("license_number"); + String login = resultSet.getString("login"); + String password = resultSet.getString("password"); Driver driver = new Driver(); driver.setId(driverId); driver.setName(name); driver.setLicenseNumber(licenseNumber); + driver.setLogin(login); + driver.setPassword(password); return driver; } diff --git a/src/main/java/taxi/dao/DriverDao.java b/src/main/java/taxi/dao/DriverDao.java index 83440d530..e9c38d2a5 100644 --- a/src/main/java/taxi/dao/DriverDao.java +++ b/src/main/java/taxi/dao/DriverDao.java @@ -1,6 +1,8 @@ package taxi.dao; +import java.util.Optional; import taxi.model.Driver; public interface DriverDao extends GenericDao { + Optional findByLogin(String login); } diff --git a/src/main/java/taxi/dao/DriverDaoImpl.java b/src/main/java/taxi/dao/DriverDaoImpl.java index f5e18f2a2..7e5606811 100644 --- a/src/main/java/taxi/dao/DriverDaoImpl.java +++ b/src/main/java/taxi/dao/DriverDaoImpl.java @@ -17,13 +17,15 @@ public class DriverDaoImpl implements DriverDao { @Override public Driver create(Driver driver) { - String query = "INSERT INTO drivers (name, license_number) " - + "VALUES (?, ?)"; + String query = "INSERT INTO drivers (name, license_number, login, password) " + + "VALUES (?,?,?,?);"; try (Connection connection = ConnectionUtil.getConnection(); PreparedStatement statement = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS)) { statement.setString(1, driver.getName()); statement.setString(2, driver.getLicenseNumber()); + statement.setString(3,driver.getLogin()); + statement.setString(4,driver.getPassword()); statement.executeUpdate(); ResultSet resultSet = statement.getGeneratedKeys(); if (resultSet.next()) { @@ -71,14 +73,16 @@ public List getAll() { @Override public Driver update(Driver driver) { String query = "UPDATE drivers " - + "SET name = ?, license_number = ? " + + "SET name = ?, license_number = ?,login = ?,password = ?" + "WHERE id = ? AND is_deleted = FALSE"; try (Connection connection = ConnectionUtil.getConnection(); - PreparedStatement statement + PreparedStatement statement = connection.prepareStatement(query)) { statement.setString(1, driver.getName()); statement.setString(2, driver.getLicenseNumber()); - statement.setLong(3, driver.getId()); + statement.setString(3,driver.getLogin()); + statement.setString(4,driver.getPassword()); + statement.setLong(5, driver.getId()); statement.executeUpdate(); return driver; } catch (SQLException e) { @@ -98,14 +102,34 @@ public boolean delete(Long id) { } } + public Optional findByLogin(String login) { + String query = "SELECT * FROM drivers WHERE login = ?;"; + try (Connection connection = ConnectionUtil.getConnection(); + PreparedStatement statement = connection.prepareStatement(query)) { + statement.setString(1,login); + ResultSet resultSet = statement.executeQuery(); + Driver driver = null; + if (resultSet.next()) { + driver = parseDriverFromResultSet(resultSet); + } + return Optional.ofNullable(driver); + } catch (SQLException e) { + throw new DataProcessingException("Can't find user by login = " + login, e); + } + } + private Driver parseDriverFromResultSet(ResultSet resultSet) throws SQLException { Long id = resultSet.getObject("id", Long.class); String name = resultSet.getString("name"); String licenseNumber = resultSet.getString("license_number"); + String login = resultSet.getString("login"); + String password = resultSet.getString("password"); Driver driver = new Driver(); driver.setId(id); driver.setName(name); driver.setLicenseNumber(licenseNumber); + driver.setLogin(login); + driver.setPassword(password); return driver; } } diff --git a/src/main/java/taxi/exception/AuthenticationException.java b/src/main/java/taxi/exception/AuthenticationException.java new file mode 100644 index 000000000..a80dfd9e9 --- /dev/null +++ b/src/main/java/taxi/exception/AuthenticationException.java @@ -0,0 +1,7 @@ +package taxi.exception; + +public class AuthenticationException extends Exception { + public AuthenticationException(String message) { + super(message); + } +} diff --git a/src/main/java/taxi/model/Driver.java b/src/main/java/taxi/model/Driver.java index 9c375f94c..3c56cd8b7 100644 --- a/src/main/java/taxi/model/Driver.java +++ b/src/main/java/taxi/model/Driver.java @@ -4,6 +4,8 @@ public class Driver { private Long id; + private String login; + private String password; private String name; private String licenseNumber; @@ -15,6 +17,13 @@ public Driver(String name, String licenseNumber) { this.licenseNumber = licenseNumber; } + public Driver(String name,String licenseNumber, String login, String password) { + this.name = name; + this.licenseNumber = licenseNumber; + this.login = login; + this.password = password; + } + public Long getId() { return id; } @@ -23,6 +32,22 @@ public void setId(Long id) { this.id = id; } + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getLogin() { + return login; + } + + public void setLogin(String login) { + this.login = login; + } + public String getName() { return name; } diff --git a/src/main/java/taxi/service/AuthenticationService.java b/src/main/java/taxi/service/AuthenticationService.java new file mode 100644 index 000000000..e9ffa0eea --- /dev/null +++ b/src/main/java/taxi/service/AuthenticationService.java @@ -0,0 +1,8 @@ +package taxi.service; + +import taxi.exception.AuthenticationException; +import taxi.model.Driver; + +public interface AuthenticationService { + Driver login(String login, String password) throws AuthenticationException; +} diff --git a/src/main/java/taxi/service/AuthenticationServiceImpl.java b/src/main/java/taxi/service/AuthenticationServiceImpl.java new file mode 100644 index 000000000..b7e0fc1c3 --- /dev/null +++ b/src/main/java/taxi/service/AuthenticationServiceImpl.java @@ -0,0 +1,27 @@ +package taxi.service; + +import java.util.Optional; +import taxi.dao.DriverDao; +import taxi.exception.AuthenticationException; +import taxi.lib.Inject; +import taxi.lib.Service; +import taxi.model.Driver; + +@Service +public class AuthenticationServiceImpl implements AuthenticationService { + @Inject + private DriverDao driverDao; + + @Override + public Driver login(String login, String password) throws AuthenticationException { + + Optional driver = driverDao.findByLogin(login); + if (driver.isEmpty()) { + throw new AuthenticationException("username or password was incorrect"); + } + if (driver.get().getPassword().equals(password)) { + return driver.get(); + } + throw new AuthenticationException("username or password was incorrect"); + } +} diff --git a/src/main/java/taxi/service/DriverServiceImpl.java b/src/main/java/taxi/service/DriverServiceImpl.java index e2f554b3f..ca2f2de87 100644 --- a/src/main/java/taxi/service/DriverServiceImpl.java +++ b/src/main/java/taxi/service/DriverServiceImpl.java @@ -2,6 +2,7 @@ import java.util.List; import java.util.NoSuchElementException; +import java.util.Optional; import taxi.dao.DriverDao; import taxi.lib.Inject; import taxi.lib.Service; @@ -20,7 +21,7 @@ public Driver create(Driver driver) { @Override public Driver get(Long id) { return driverDao.get(id).orElseThrow(() -> - new NoSuchElementException("Can't get driver by id: " + id) + new NoSuchElementException("Can't get driver by id: " + id) ); } @@ -38,4 +39,8 @@ public Driver update(Driver driver) { public boolean delete(Long id) { return driverDao.delete(id); } + + private Optional findByLogin(String login) { + return driverDao.findByLogin(login); + } } diff --git a/src/main/java/taxi/util/ConnectionUtil.java b/src/main/java/taxi/util/ConnectionUtil.java index 9a94e69a2..c6e27e738 100644 --- a/src/main/java/taxi/util/ConnectionUtil.java +++ b/src/main/java/taxi/util/ConnectionUtil.java @@ -6,10 +6,10 @@ import java.util.Properties; public class ConnectionUtil { - private static final String URL = "YOUR DATABASE URL"; - private static final String USERNAME = "YOUR USERNAME"; - private static final String PASSWORD = "YOUR PASSWORD"; - private static final String JDBC_DRIVER = "YOUR DRIVER"; + private static final String URL = "jdbc:mysql://localhost:3306/taxi?serverTimezone=UTC"; + private static final String USERNAME = "root"; + private static final String PASSWORD = "glorytobeServer"; + private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; static { try { diff --git a/src/main/java/taxi/web/filter/AuthenticationFilter.java b/src/main/java/taxi/web/filter/AuthenticationFilter.java new file mode 100644 index 000000000..5bfb60d61 --- /dev/null +++ b/src/main/java/taxi/web/filter/AuthenticationFilter.java @@ -0,0 +1,45 @@ +package taxi.web.filter; + +import java.io.IOException; +import java.util.HashSet; +import java.util.Set; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +public class AuthenticationFilter implements Filter { + private final Set allowedUrls = new HashSet<>(); + + @Override + public void init(FilterConfig filterConfig) { + allowedUrls.add("/login"); + allowedUrls.add("/drivers/add"); + } + + @Override + public void doFilter(ServletRequest servletRequest, + ServletResponse servletResponse, FilterChain filterChain) + throws IOException, ServletException { + HttpServletRequest request = (HttpServletRequest) servletRequest; + HttpServletResponse response = (HttpServletResponse) servletResponse; + HttpSession session = request.getSession(); + + Long driverId = (Long) session.getAttribute("driver_id"); + if (driverId == null && allowedUrls.contains(request.getServletPath())) { + filterChain.doFilter(request, response); + return; + } + + if (driverId == null) { + response.sendRedirect(request.getContextPath() + "/login"); + return; + } + filterChain.doFilter(request, response); + } +} diff --git a/src/main/webapp/WEB-INF/views/css/table_dark.css b/src/main/webapp/WEB-INF/views/css/table_dark.css index 11a147b92..2cb1cd4e8 100644 --- a/src/main/webapp/WEB-INF/views/css/table_dark.css +++ b/src/main/webapp/WEB-INF/views/css/table_dark.css @@ -8,12 +8,14 @@ background: #FEF4AB; margin: auto; } + .table_dark th { color: #7C5FAB; border-bottom: 1px solid #98E2CA; padding: 12px 17px; font-size: 14px; } + .table_dark td { color: #7C5FAB; border-bottom: 1px solid #98E2CA; @@ -21,12 +23,15 @@ padding: 7px 17px; font-size: 14px; } + .table_dark tr:last-child td { border-bottom: none; } + .table_dark td:last-child { border-right: none; } + .table_dark tr:hover td { text-decoration: underline; } diff --git a/src/main/webapp/WEB-INF/views/drivers/add.jsp b/src/main/webapp/WEB-INF/views/drivers/add.jsp index 4ad7cee44..8fc61bfcd 100644 --- a/src/main/webapp/WEB-INF/views/drivers/add.jsp +++ b/src/main/webapp/WEB-INF/views/drivers/add.jsp @@ -1,7 +1,43 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> @@ -14,6 +50,8 @@ Name License number + Login + Password Add @@ -23,6 +61,12 @@ + + + + + + diff --git a/src/main/webapp/WEB-INF/views/header.jsp b/src/main/webapp/WEB-INF/views/header.jsp new file mode 100644 index 000000000..dc32188a6 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/header.jsp @@ -0,0 +1,27 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + +
+ Logout +
+ diff --git a/src/main/webapp/WEB-INF/views/index.jsp b/src/main/webapp/WEB-INF/views/index.jsp index b9b5e9d2b..157ae7614 100644 --- a/src/main/webapp/WEB-INF/views/index.jsp +++ b/src/main/webapp/WEB-INF/views/index.jsp @@ -9,6 +9,7 @@

Hello, mates

+<%@include file="header.jsp"%> @@ -20,6 +21,7 @@ +
Redirect to
Create new Car
Create new Manufacturer
Add Driver to Car
Get my current cars
diff --git a/src/main/webapp/WEB-INF/views/login.jsp b/src/main/webapp/WEB-INF/views/login.jsp new file mode 100644 index 000000000..615a7a925 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/login.jsp @@ -0,0 +1,67 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + diff --git a/src/main/webapp/web.xml b/src/main/webapp/web.xml index 284381048..8d53992de 100644 --- a/src/main/webapp/web.xml +++ b/src/main/webapp/web.xml @@ -105,4 +105,40 @@ deleteManufacturer /manufacturers/delete + + + loginController + taxi.controller.LoginController + + + loginController + /login + + + + logoutController + taxi.controller.LogoutController + + + logoutController + /logout + + + + getMyCurrentCars + taxi.controller.car.GetMyCurrentCarsController + + + getMyCurrentCars + /cars/all + + + + authenticationFilter + taxi.web.filter.AuthenticationFilter + + + authenticationFilter + /* + From 0b512d410988ee65d5bea078cfd07c6eddaeff00 Mon Sep 17 00:00:00 2001 From: Mykhailo Date: Sun, 6 Aug 2023 16:06:06 +0300 Subject: [PATCH 2/4] fix my solution --- src/main/java/taxi/controller/LoginController.java | 10 +++++----- src/main/java/taxi/controller/LogoutController.java | 2 +- src/main/java/taxi/dao/CarDaoImpl.java | 4 ---- src/main/java/taxi/dao/DriverDaoImpl.java | 2 +- .../java/taxi/service/AuthenticationServiceImpl.java | 6 +----- .../java/taxi/web/filter/AuthenticationFilter.java | 8 +++----- src/main/webapp/WEB-INF/views/cars/all.jsp | 2 +- 7 files changed, 12 insertions(+), 22 deletions(-) diff --git a/src/main/java/taxi/controller/LoginController.java b/src/main/java/taxi/controller/LoginController.java index 6fe09e602..bfaba03fc 100644 --- a/src/main/java/taxi/controller/LoginController.java +++ b/src/main/java/taxi/controller/LoginController.java @@ -19,7 +19,7 @@ public class LoginController extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - req.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(req,resp); + req.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(req, resp); } @Override @@ -31,11 +31,11 @@ protected void doPost(HttpServletRequest req, HttpServletResponse resp) try { Driver driver = authenticationService.login(username, password); HttpSession session = req.getSession(); - session.setAttribute("driver_id",driver.getId()); - resp.sendRedirect("/index"); + session.setAttribute("driver_id", driver.getId()); + resp.sendRedirect(req.getContextPath() + "/index"); } catch (AuthenticationException e) { - req.setAttribute("errorMsg",e.getMessage()); - req.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(req,resp); + req.setAttribute("errorMsg", e.getMessage()); + req.getRequestDispatcher("/WEB-INF/views/login.jsp").forward(req, resp); } } } diff --git a/src/main/java/taxi/controller/LogoutController.java b/src/main/java/taxi/controller/LogoutController.java index 826cb28c0..b47e50410 100644 --- a/src/main/java/taxi/controller/LogoutController.java +++ b/src/main/java/taxi/controller/LogoutController.java @@ -11,6 +11,6 @@ public class LogoutController extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.getSession().invalidate(); - resp.sendRedirect("/index"); + resp.sendRedirect(req.getContextPath() + "/index"); } } diff --git a/src/main/java/taxi/dao/CarDaoImpl.java b/src/main/java/taxi/dao/CarDaoImpl.java index 622ef69db..586ccb595 100644 --- a/src/main/java/taxi/dao/CarDaoImpl.java +++ b/src/main/java/taxi/dao/CarDaoImpl.java @@ -211,14 +211,10 @@ private Driver parseDriverFromResultSet(ResultSet resultSet) throws SQLException Long driverId = resultSet.getObject("id", Long.class); String name = resultSet.getString("name"); String licenseNumber = resultSet.getString("license_number"); - String login = resultSet.getString("login"); - String password = resultSet.getString("password"); Driver driver = new Driver(); driver.setId(driverId); driver.setName(name); driver.setLicenseNumber(licenseNumber); - driver.setLogin(login); - driver.setPassword(password); return driver; } diff --git a/src/main/java/taxi/dao/DriverDaoImpl.java b/src/main/java/taxi/dao/DriverDaoImpl.java index 7e5606811..84ab26d7b 100644 --- a/src/main/java/taxi/dao/DriverDaoImpl.java +++ b/src/main/java/taxi/dao/DriverDaoImpl.java @@ -128,8 +128,8 @@ private Driver parseDriverFromResultSet(ResultSet resultSet) throws SQLException driver.setId(id); driver.setName(name); driver.setLicenseNumber(licenseNumber); - driver.setLogin(login); driver.setPassword(password); + driver.setLogin(login); return driver; } } diff --git a/src/main/java/taxi/service/AuthenticationServiceImpl.java b/src/main/java/taxi/service/AuthenticationServiceImpl.java index b7e0fc1c3..0625020fe 100644 --- a/src/main/java/taxi/service/AuthenticationServiceImpl.java +++ b/src/main/java/taxi/service/AuthenticationServiceImpl.java @@ -14,12 +14,8 @@ public class AuthenticationServiceImpl implements AuthenticationService { @Override public Driver login(String login, String password) throws AuthenticationException { - Optional driver = driverDao.findByLogin(login); - if (driver.isEmpty()) { - throw new AuthenticationException("username or password was incorrect"); - } - if (driver.get().getPassword().equals(password)) { + if (driver.isPresent() && driver.get().getPassword().equals(password)) { return driver.get(); } throw new AuthenticationException("username or password was incorrect"); diff --git a/src/main/java/taxi/web/filter/AuthenticationFilter.java b/src/main/java/taxi/web/filter/AuthenticationFilter.java index 5bfb60d61..f4d5d8c13 100644 --- a/src/main/java/taxi/web/filter/AuthenticationFilter.java +++ b/src/main/java/taxi/web/filter/AuthenticationFilter.java @@ -31,15 +31,13 @@ public void doFilter(ServletRequest servletRequest, HttpSession session = request.getSession(); Long driverId = (Long) session.getAttribute("driver_id"); - if (driverId == null && allowedUrls.contains(request.getServletPath())) { - filterChain.doFilter(request, response); - return; - } + boolean allowedUrl = allowedUrls.contains(request.getServletPath()); - if (driverId == null) { + if (driverId == null && !allowedUrl) { response.sendRedirect(request.getContextPath() + "/login"); return; } filterChain.doFilter(request, response); } + } diff --git a/src/main/webapp/WEB-INF/views/cars/all.jsp b/src/main/webapp/WEB-INF/views/cars/all.jsp index 84f046299..b283adfea 100644 --- a/src/main/webapp/WEB-INF/views/cars/all.jsp +++ b/src/main/webapp/WEB-INF/views/cars/all.jsp @@ -34,7 +34,7 @@ - ${driver.id} ${driver.name} ${driver.licenseNumber}
+ ${driver.name}
From 5987d7f1146ed83882d00532995a43651c2e70ac Mon Sep 17 00:00:00 2001 From: Mykhailo Date: Mon, 7 Aug 2023 19:26:02 +0300 Subject: [PATCH 3/4] add logger... --- logs/app.log | 0 pom.xml | 14 +++++++++++ .../{ => impl}/AuthenticationServiceImpl.java | 8 +++++- .../service/{ => impl}/CarServiceImpl.java | 3 ++- .../service/{ => impl}/DriverServiceImpl.java | 3 ++- .../{ => impl}/ManufacturerServiceImpl.java | 3 ++- src/main/java/taxi/util/ConnectionUtil.java | 3 ++- src/main/resources/init_db.sql | 18 +++++++------ src/main/resources/log4j2.xml | 25 +++++++++++++++++++ 9 files changed, 65 insertions(+), 12 deletions(-) create mode 100644 logs/app.log rename src/main/java/taxi/service/{ => impl}/AuthenticationServiceImpl.java (67%) rename src/main/java/taxi/service/{ => impl}/CarServiceImpl.java (95%) rename src/main/java/taxi/service/{ => impl}/DriverServiceImpl.java (94%) rename src/main/java/taxi/service/{ => impl}/ManufacturerServiceImpl.java (93%) create mode 100644 src/main/resources/log4j2.xml diff --git a/logs/app.log b/logs/app.log new file mode 100644 index 000000000..e69de29bb diff --git a/pom.xml b/pom.xml index 02df8cbab..4645433b3 100644 --- a/pom.xml +++ b/pom.xml @@ -20,11 +20,25 @@ + + junit + junit + 4.13.1 + test + + + + org.apache.logging.log4j + log4j-core + 2.17.1 + + mysql mysql-connector-java 8.0.28 + javax.servlet javax.servlet-api diff --git a/src/main/java/taxi/service/AuthenticationServiceImpl.java b/src/main/java/taxi/service/impl/AuthenticationServiceImpl.java similarity index 67% rename from src/main/java/taxi/service/AuthenticationServiceImpl.java rename to src/main/java/taxi/service/impl/AuthenticationServiceImpl.java index 0625020fe..e4f91b5e5 100644 --- a/src/main/java/taxi/service/AuthenticationServiceImpl.java +++ b/src/main/java/taxi/service/impl/AuthenticationServiceImpl.java @@ -1,19 +1,25 @@ -package taxi.service; +package taxi.service.impl; import java.util.Optional; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import taxi.dao.DriverDao; import taxi.exception.AuthenticationException; import taxi.lib.Inject; import taxi.lib.Service; import taxi.model.Driver; +import taxi.service.AuthenticationService; @Service public class AuthenticationServiceImpl implements AuthenticationService { + public static final Logger logger = + LogManager.getLogger(AuthenticationServiceImpl.class); @Inject private DriverDao driverDao; @Override public Driver login(String login, String password) throws AuthenticationException { + logger.info("Method login was called.Params: login = {}", login); Optional driver = driverDao.findByLogin(login); if (driver.isPresent() && driver.get().getPassword().equals(password)) { return driver.get(); diff --git a/src/main/java/taxi/service/CarServiceImpl.java b/src/main/java/taxi/service/impl/CarServiceImpl.java similarity index 95% rename from src/main/java/taxi/service/CarServiceImpl.java rename to src/main/java/taxi/service/impl/CarServiceImpl.java index 48de7d6e2..e4c7a508b 100644 --- a/src/main/java/taxi/service/CarServiceImpl.java +++ b/src/main/java/taxi/service/impl/CarServiceImpl.java @@ -1,4 +1,4 @@ -package taxi.service; +package taxi.service.impl; import java.util.List; import java.util.NoSuchElementException; @@ -7,6 +7,7 @@ import taxi.lib.Service; import taxi.model.Car; import taxi.model.Driver; +import taxi.service.CarService; @Service public class CarServiceImpl implements CarService { diff --git a/src/main/java/taxi/service/DriverServiceImpl.java b/src/main/java/taxi/service/impl/DriverServiceImpl.java similarity index 94% rename from src/main/java/taxi/service/DriverServiceImpl.java rename to src/main/java/taxi/service/impl/DriverServiceImpl.java index ca2f2de87..f7bdac942 100644 --- a/src/main/java/taxi/service/DriverServiceImpl.java +++ b/src/main/java/taxi/service/impl/DriverServiceImpl.java @@ -1,4 +1,4 @@ -package taxi.service; +package taxi.service.impl; import java.util.List; import java.util.NoSuchElementException; @@ -7,6 +7,7 @@ import taxi.lib.Inject; import taxi.lib.Service; import taxi.model.Driver; +import taxi.service.DriverService; @Service public class DriverServiceImpl implements DriverService { diff --git a/src/main/java/taxi/service/ManufacturerServiceImpl.java b/src/main/java/taxi/service/impl/ManufacturerServiceImpl.java similarity index 93% rename from src/main/java/taxi/service/ManufacturerServiceImpl.java rename to src/main/java/taxi/service/impl/ManufacturerServiceImpl.java index a62f02e84..a944a5748 100644 --- a/src/main/java/taxi/service/ManufacturerServiceImpl.java +++ b/src/main/java/taxi/service/impl/ManufacturerServiceImpl.java @@ -1,4 +1,4 @@ -package taxi.service; +package taxi.service.impl; import java.util.List; import java.util.NoSuchElementException; @@ -6,6 +6,7 @@ import taxi.lib.Inject; import taxi.lib.Service; import taxi.model.Manufacturer; +import taxi.service.ManufacturerService; @Service public class ManufacturerServiceImpl implements ManufacturerService { diff --git a/src/main/java/taxi/util/ConnectionUtil.java b/src/main/java/taxi/util/ConnectionUtil.java index c6e27e738..203935912 100644 --- a/src/main/java/taxi/util/ConnectionUtil.java +++ b/src/main/java/taxi/util/ConnectionUtil.java @@ -6,7 +6,8 @@ import java.util.Properties; public class ConnectionUtil { - private static final String URL = "jdbc:mysql://localhost:3306/taxi?serverTimezone=UTC"; + private static final String URL = + "jdbc:mysql://database-1.clt2weeraobx.eu-north-1.rds.amazonaws.com:3306/taxi"; private static final String USERNAME = "root"; private static final String PASSWORD = "glorytobeServer"; private static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; diff --git a/src/main/resources/init_db.sql b/src/main/resources/init_db.sql index 2acabb883..7389609b6 100644 --- a/src/main/resources/init_db.sql +++ b/src/main/resources/init_db.sql @@ -7,13 +7,15 @@ SET FOREIGN_KEY_CHECKS = 0; -- Table structure for drivers -- ---------------------------- DROP TABLE IF EXISTS `drivers`; -CREATE TABLE `drivers` ( - `id` BIGINT(0) UNSIGNED NOT NULL AUTO_INCREMENT, - `name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, - `license_number` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, - `is_deleted` BIT(1) NOT NULL DEFAULT b'0', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; +CREATE TABLE `drivers` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL, + `license_number` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL, + `password` varchar(255) NOT NULL, + `login` varchar(255) NOT NULL, + `is_deleted` bit(1) NOT NULL DEFAULT b'0', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC; -- ---------------------------- -- Table structure for manufacturers @@ -56,3 +58,5 @@ CREATE TABLE `cars_drivers` ( ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1; + + diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml new file mode 100644 index 000000000..8dcb0705f --- /dev/null +++ b/src/main/resources/log4j2.xml @@ -0,0 +1,25 @@ + + + + + + + + + + %d %p %c:%L %m%n + + + + + + + + + + + + + + + From 8225f7fe48f350ce584a58f5dfc8b34f0f595456 Mon Sep 17 00:00:00 2001 From: Mykhailo Date: Tue, 8 Aug 2023 12:08:01 +0300 Subject: [PATCH 4/4] add logger to project --- logs/app.log | 1 + pom.xml | 7 ------- src/main/java/taxi/controller/LoginController.java | 5 +++++ .../java/taxi/controller/car/AddCarController.java | 5 +++++ .../taxi/controller/car/AddDriverToCarController.java | 6 ++++++ .../java/taxi/controller/car/DeleteCarController.java | 10 +++++++++- .../taxi/controller/car/GetAllCarsController.java | 5 +++++ .../controller/car/GetMyCurrentCarsController.java | 5 +++++ .../taxi/controller/driver/AddDriverController.java | 5 +++++ .../controller/driver/DeleteDriverController.java | 10 +++++++++- .../controller/driver/GetAllDriversController.java | 5 +++++ .../manufacturer/AddManufacturerController.java | 5 +++++ .../manufacturer/DeleteManufacturerController.java | 11 ++++++++++- .../manufacturer/GetAllManufacturersController.java | 5 +++++ .../taxi/service/impl/AuthenticationServiceImpl.java | 5 ----- src/main/resources/log4j2.xml | 2 +- 16 files changed, 76 insertions(+), 16 deletions(-) diff --git a/logs/app.log b/logs/app.log index e69de29bb..a36fa7749 100644 --- a/logs/app.log +++ b/logs/app.log @@ -0,0 +1 @@ +2023-08-08 11:54:41,474 INFO taxi.controller.LoginController:39 Authorized user: Name: bob diff --git a/pom.xml b/pom.xml index 4645433b3..c7bb10103 100644 --- a/pom.xml +++ b/pom.xml @@ -20,13 +20,6 @@ - - junit - junit - 4.13.1 - test - - org.apache.logging.log4j log4j-core diff --git a/src/main/java/taxi/controller/LoginController.java b/src/main/java/taxi/controller/LoginController.java index bfaba03fc..3a9dca5e6 100644 --- a/src/main/java/taxi/controller/LoginController.java +++ b/src/main/java/taxi/controller/LoginController.java @@ -6,6 +6,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import taxi.exception.AuthenticationException; import taxi.lib.Injector; import taxi.model.Driver; @@ -13,6 +15,8 @@ public class LoginController extends HttpServlet { private static final Injector injector = Injector.getInstance("taxi"); + private static final Logger logger = + LogManager.getLogger(LoginController.class); private final AuthenticationService authenticationService = (AuthenticationService) injector.getInstance(AuthenticationService.class); @@ -32,6 +36,7 @@ protected void doPost(HttpServletRequest req, HttpServletResponse resp) Driver driver = authenticationService.login(username, password); HttpSession session = req.getSession(); session.setAttribute("driver_id", driver.getId()); + logger.debug("Authorized driver: Name: {}", driver.getName()); resp.sendRedirect(req.getContextPath() + "/index"); } catch (AuthenticationException e) { req.setAttribute("errorMsg", e.getMessage()); diff --git a/src/main/java/taxi/controller/car/AddCarController.java b/src/main/java/taxi/controller/car/AddCarController.java index 7ce3dea2f..0c6d781df 100644 --- a/src/main/java/taxi/controller/car/AddCarController.java +++ b/src/main/java/taxi/controller/car/AddCarController.java @@ -5,6 +5,8 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import taxi.lib.Injector; import taxi.model.Car; import taxi.model.Manufacturer; @@ -13,6 +15,8 @@ public class AddCarController extends HttpServlet { private static final Injector injector = Injector.getInstance("taxi"); + private static final Logger logger = + LogManager.getLogger(AddCarController.class); private final CarService carService = (CarService) injector.getInstance(CarService.class); private final ManufacturerService manufacturerService = (ManufacturerService) injector .getInstance(ManufacturerService.class); @@ -30,6 +34,7 @@ public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOEx Manufacturer manufacturer = manufacturerService.get(manufacturerId); Car car = new Car(model, manufacturer); carService.create(car); + logger.info("Successfully created new car: " + car.getModel()); resp.sendRedirect(req.getContextPath() + "/cars/add"); } } diff --git a/src/main/java/taxi/controller/car/AddDriverToCarController.java b/src/main/java/taxi/controller/car/AddDriverToCarController.java index 9b2aa76ca..ad4fdd3b8 100644 --- a/src/main/java/taxi/controller/car/AddDriverToCarController.java +++ b/src/main/java/taxi/controller/car/AddDriverToCarController.java @@ -5,6 +5,8 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import taxi.lib.Injector; import taxi.model.Car; import taxi.model.Driver; @@ -13,6 +15,8 @@ public class AddDriverToCarController extends HttpServlet { private static final Injector injector = Injector.getInstance("taxi"); + private static final Logger logger = + LogManager.getLogger(AddDriverToCarController.class); private final CarService carService = (CarService) injector.getInstance(CarService.class); private final DriverService driverService = (DriverService) injector .getInstance(DriverService.class); @@ -30,6 +34,8 @@ public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOEx Driver driver = driverService.get(driverId); Car car = carService.get(carId); carService.addDriverToCar(driver, car); + logger.debug("Successfully added driver: " + driver.getName() + + " to Car: " + car.getModel()); resp.sendRedirect(req.getContextPath() + "/cars/drivers/add"); } } diff --git a/src/main/java/taxi/controller/car/DeleteCarController.java b/src/main/java/taxi/controller/car/DeleteCarController.java index d27e28a48..ac0fa4cac 100644 --- a/src/main/java/taxi/controller/car/DeleteCarController.java +++ b/src/main/java/taxi/controller/car/DeleteCarController.java @@ -4,16 +4,24 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import taxi.lib.Injector; +import taxi.model.Car; import taxi.service.CarService; public class DeleteCarController extends HttpServlet { private static final Injector injector = Injector.getInstance("taxi"); + private static final Logger logger = + LogManager.getLogger(DeleteCarController.class); private final CarService carService = (CarService) injector.getInstance(CarService.class); @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { - carService.delete(Long.parseLong(req.getParameter("id"))); + Car car = carService.get(Long.parseLong(req.getParameter("id"))); + carService.delete(car.getId()); + logger.info("Successfully deleted from list car with id: " + + car.getId()); resp.sendRedirect(req.getContextPath() + "/cars"); } } diff --git a/src/main/java/taxi/controller/car/GetAllCarsController.java b/src/main/java/taxi/controller/car/GetAllCarsController.java index df01c7083..7e5db5ad9 100644 --- a/src/main/java/taxi/controller/car/GetAllCarsController.java +++ b/src/main/java/taxi/controller/car/GetAllCarsController.java @@ -6,12 +6,16 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import taxi.lib.Injector; import taxi.model.Car; import taxi.service.CarService; public class GetAllCarsController extends HttpServlet { private static final Injector injector = Injector.getInstance("taxi"); + private static final Logger logger = + LogManager.getLogger(GetAllCarsController.class); private final CarService carService = (CarService) injector.getInstance(CarService.class); @Override @@ -19,6 +23,7 @@ public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { List cars = carService.getAll(); req.setAttribute("cars", cars); + logger.debug("Successfully fetched carsList from DB"); req.getRequestDispatcher("/WEB-INF/views/cars/all.jsp").forward(req, resp); } } diff --git a/src/main/java/taxi/controller/car/GetMyCurrentCarsController.java b/src/main/java/taxi/controller/car/GetMyCurrentCarsController.java index 942e34da2..5c4334dd3 100644 --- a/src/main/java/taxi/controller/car/GetMyCurrentCarsController.java +++ b/src/main/java/taxi/controller/car/GetMyCurrentCarsController.java @@ -6,12 +6,16 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import taxi.lib.Injector; import taxi.model.Car; import taxi.service.CarService; public class GetMyCurrentCarsController extends HttpServlet { private static final Injector injector = Injector.getInstance("taxi"); + private static final Logger logger = + LogManager.getLogger(GetMyCurrentCarsController.class); private final CarService carService = (CarService) injector.getInstance(CarService.class); @Override @@ -20,6 +24,7 @@ protected void doGet(HttpServletRequest req, HttpServletResponse resp) Long driverId = (Long) req.getSession().getAttribute("driver_id"); List carList = carService.getAllByDriver(driverId); req.setAttribute("cars", carList); + logger.debug("Successfully fetched data for driver's cars"); req.getRequestDispatcher("/WEB-INF/views/cars/all.jsp").forward(req, resp); } } diff --git a/src/main/java/taxi/controller/driver/AddDriverController.java b/src/main/java/taxi/controller/driver/AddDriverController.java index d3235bc2d..35dbd6704 100644 --- a/src/main/java/taxi/controller/driver/AddDriverController.java +++ b/src/main/java/taxi/controller/driver/AddDriverController.java @@ -5,12 +5,16 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import taxi.lib.Injector; import taxi.model.Driver; import taxi.service.DriverService; public class AddDriverController extends HttpServlet { private static final Injector injector = Injector.getInstance("taxi"); + private static final Logger logger = + LogManager.getLogger(AddDriverController.class); private final DriverService driverService = (DriverService) injector .getInstance(DriverService.class); @@ -28,6 +32,7 @@ public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOEx String password = req.getParameter("password"); Driver driver = new Driver(name, licenseNumber,login,password); driverService.create(driver); + logger.info("Successfully created new driver: " + driver.getName()); resp.sendRedirect(req.getContextPath() + "/drivers/add"); } } diff --git a/src/main/java/taxi/controller/driver/DeleteDriverController.java b/src/main/java/taxi/controller/driver/DeleteDriverController.java index d0cbf0d4e..1ac3ed16f 100644 --- a/src/main/java/taxi/controller/driver/DeleteDriverController.java +++ b/src/main/java/taxi/controller/driver/DeleteDriverController.java @@ -4,17 +4,25 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import taxi.lib.Injector; +import taxi.model.Driver; import taxi.service.DriverService; public class DeleteDriverController extends HttpServlet { private static final Injector injector = Injector.getInstance("taxi"); + private static final Logger logger = + LogManager.getLogger(DeleteDriverController.class); private final DriverService driverService = (DriverService) injector .getInstance(DriverService.class); @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { - driverService.delete(Long.parseLong(req.getParameter("id"))); + Driver driver = driverService.get(Long.parseLong(req.getParameter("id"))); + driverService.delete(driver.getId()); + logger.info("Successfully deleted from list driver with id: " + + driver.getId()); resp.sendRedirect(req.getContextPath() + "/drivers"); } } diff --git a/src/main/java/taxi/controller/driver/GetAllDriversController.java b/src/main/java/taxi/controller/driver/GetAllDriversController.java index b847b17f2..03eb4c226 100644 --- a/src/main/java/taxi/controller/driver/GetAllDriversController.java +++ b/src/main/java/taxi/controller/driver/GetAllDriversController.java @@ -6,12 +6,16 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import taxi.lib.Injector; import taxi.model.Driver; import taxi.service.DriverService; public class GetAllDriversController extends HttpServlet { private static final Injector injector = Injector.getInstance("taxi"); + private static final Logger logger = + LogManager.getLogger(GetAllDriversController.class); private final DriverService driverService = (DriverService) injector .getInstance(DriverService.class); @@ -20,6 +24,7 @@ public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { List drivers = driverService.getAll(); req.setAttribute("drivers", drivers); + logger.debug("Successfully fetched driversList from DB"); req.getRequestDispatcher("/WEB-INF/views/drivers/all.jsp").forward(req, resp); } } diff --git a/src/main/java/taxi/controller/manufacturer/AddManufacturerController.java b/src/main/java/taxi/controller/manufacturer/AddManufacturerController.java index 3293b60ca..f230a235c 100644 --- a/src/main/java/taxi/controller/manufacturer/AddManufacturerController.java +++ b/src/main/java/taxi/controller/manufacturer/AddManufacturerController.java @@ -5,12 +5,16 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import taxi.lib.Injector; import taxi.model.Manufacturer; import taxi.service.ManufacturerService; public class AddManufacturerController extends HttpServlet { private static final Injector injector = Injector.getInstance("taxi"); + private static final Logger logger = + LogManager.getLogger(AddManufacturerController.class); private final ManufacturerService manufacturerService = (ManufacturerService) injector .getInstance(ManufacturerService.class); @@ -26,6 +30,7 @@ public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOEx String country = req.getParameter("country"); Manufacturer manufacturer = new Manufacturer(name, country); manufacturerService.create(manufacturer); + logger.info("Successfully created new manufacturer: " + manufacturer.getName()); resp.sendRedirect(req.getContextPath() + "/manufacturers/add"); } } diff --git a/src/main/java/taxi/controller/manufacturer/DeleteManufacturerController.java b/src/main/java/taxi/controller/manufacturer/DeleteManufacturerController.java index 8035ea301..62ab5339b 100644 --- a/src/main/java/taxi/controller/manufacturer/DeleteManufacturerController.java +++ b/src/main/java/taxi/controller/manufacturer/DeleteManufacturerController.java @@ -4,17 +4,26 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import taxi.lib.Injector; +import taxi.model.Manufacturer; import taxi.service.ManufacturerService; public class DeleteManufacturerController extends HttpServlet { private static final Injector injector = Injector.getInstance("taxi"); + private static final Logger logger = + LogManager.getLogger(DeleteManufacturerController.class); private final ManufacturerService manufacturerService = (ManufacturerService) injector .getInstance(ManufacturerService.class); @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { - manufacturerService.delete(Long.parseLong(req.getParameter("id"))); + Manufacturer manufacturer = + manufacturerService.get(Long.parseLong(req.getParameter("id"))); + manufacturerService.delete(manufacturer.getId()); + logger.info("Successfully deleted from list manufacturer with id: " + + manufacturer.getId()); resp.sendRedirect(req.getContextPath() + "/manufacturers"); } } diff --git a/src/main/java/taxi/controller/manufacturer/GetAllManufacturersController.java b/src/main/java/taxi/controller/manufacturer/GetAllManufacturersController.java index 68b727e41..7eaf5cf8a 100644 --- a/src/main/java/taxi/controller/manufacturer/GetAllManufacturersController.java +++ b/src/main/java/taxi/controller/manufacturer/GetAllManufacturersController.java @@ -6,12 +6,16 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import taxi.lib.Injector; import taxi.model.Manufacturer; import taxi.service.ManufacturerService; public class GetAllManufacturersController extends HttpServlet { private static final Injector injector = Injector.getInstance("taxi"); + private static final Logger logger = + LogManager.getLogger(GetAllManufacturersController.class); private final ManufacturerService manufacturerService = (ManufacturerService) injector .getInstance(ManufacturerService.class); @@ -20,6 +24,7 @@ public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { List manufacturers = manufacturerService.getAll(); req.setAttribute("manufacturers", manufacturers); + logger.debug("Successfully fetched manufacturersList from DB"); req.getRequestDispatcher("/WEB-INF/views/manufacturers/all.jsp").forward(req, resp); } } diff --git a/src/main/java/taxi/service/impl/AuthenticationServiceImpl.java b/src/main/java/taxi/service/impl/AuthenticationServiceImpl.java index e4f91b5e5..a7bb64316 100644 --- a/src/main/java/taxi/service/impl/AuthenticationServiceImpl.java +++ b/src/main/java/taxi/service/impl/AuthenticationServiceImpl.java @@ -1,8 +1,6 @@ package taxi.service.impl; import java.util.Optional; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import taxi.dao.DriverDao; import taxi.exception.AuthenticationException; import taxi.lib.Inject; @@ -12,14 +10,11 @@ @Service public class AuthenticationServiceImpl implements AuthenticationService { - public static final Logger logger = - LogManager.getLogger(AuthenticationServiceImpl.class); @Inject private DriverDao driverDao; @Override public Driver login(String login, String password) throws AuthenticationException { - logger.info("Method login was called.Params: login = {}", login); Optional driver = driverDao.findByLogin(login); if (driver.isPresent() && driver.get().getPassword().equals(password)) { return driver.get(); diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml index 8dcb0705f..61b4f2b62 100644 --- a/src/main/resources/log4j2.xml +++ b/src/main/resources/log4j2.xml @@ -5,7 +5,7 @@ - + %d %p %c:%L %m%n