package br.com.CRUDSpringHibernateMaven.controller; import javax.servlet.http.HttpSession; import javax.validation.Valid; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import br.com.CRUDSpringHibernateMaven.infra.MensagensPadronizadas; import br.com.CRUDSpringHibernateMaven.model.Usuario; import br.com.CRUDSpringHibernateMaven.service.LoginService; @Controller public class LoginController { ProdutoController produtoController = new ProdutoController(); LoginService loginService = new LoginService(); @RequestMapping("/login/login") public String paginaDeLogin(){ return "login/Login"; } @RequestMapping(value="/login/logar", method = RequestMethod.POST) public String efetuarLogin(@Valid Usuario usuario, BindingResult result, ModelMap model, HttpSession session){ String mensagem = null; boolean podeLogar = false; if(result.hasFieldErrors("username") || result.hasFieldErrors("senha")){ mensagem = "Erro no login! Username ou senha errados!"; model.addAttribute("mensagemTitulo", mensagem); return "forward:/login/login"; }else{ usuario = loginService.logar(usuario); if(usuario != null){ podeLogar = true; } } if(podeLogar){ mensagem = new MensagensPadronizadas().loginSucesso; session.setAttribute("usuarioLogado", usuario); return "redirect:/menu"; }else{ mensagem = new MensagensPadronizadas().loginErro; model.addAttribute("mensagemTitulo", mensagem); return "forward:/login/login"; } } @RequestMapping("/login/logout") public String logout(HttpSession session, ModelMap model){ String mensagem = "Logout efetuado com sucesso!"; model.addAttribute("mensagemTitulo", mensagem); session.invalidate(); return paginaDeLogin(); } @RequestMapping("/erro") public String paginaDeErro(HttpSession session, ModelMap model){ return "erro/Erro"; } }