Caros usuários,
estou desenvolvimento o famoso aplicativo web para compras…
A autenticação é feita desta forma :
protected void doLogin(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
String username = request.getParameter("username");
String password = request.getParameter("password");
HttpSession session = request.getSession();
Client aClient = null;
ClientDAO aClientDAO = new ClientDAO();
aClient = aClientDAO.read(username, password);
if (aClient != null) {
aClient.setSessionID(session.getId());
listClients.add(aClient);
session.setAttribute("username", username);
startOrder(aClient.getUsername(), session.getId());
RequestDispatcher rd = request.getRequestDispatcher("/addItem.jsp");
rd.forward(request, response);
} else {
response.sendRedirect("index.jsp");
}
}
{
Para controlar o acesso a páginas, verifico se usuário está autenticado pela presença do atributo username
HttpSession session = request.getSession();
if (session.getAttribute("username")!=null && !session.getAttribute("username").toString().isEmpty()) {
Um usuário mais experiente e mal intencionado seria capaz de criar, sem passar pelo servlet, um atributo username para ter acesso às paginas, correto?
Pensei, como solução, em uma validação do atributo username e também deste username no banco de dados ou na lista de clientes
listClients.add(aClient);
Há uma maneira, sem a utilização de frameworks, mais elegante/segurança de fazer este controle?
Obrigado!