package gcom.gui.batch; import java.io.DataOutputStream; import java.io.IOException; import java.net.URL; import java.net.URLConnection; import java.text.SimpleDateFormat; import java.util.Calendar; 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 org.jboss.logging.Logger; import gcom.fachada.Fachada; import gcom.gui.operacional.AcessarOperacionalServlet; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.Util; public class AcessarNovoBatchServlet extends HttpServlet{ private static final long serialVersionUID = 1208477970667658217L; private Logger logger = Logger.getLogger(AcessarOperacionalServlet.class); private static final String CONTENT_TYPE = "text/html"; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); try { URL url; URLConnection urlConn; DataOutputStream cgiInput; String nomeUsuario = getNomeUsuario(request); String token = geraCodigoToken(nomeUsuario); Fachada fachada = Fachada.getInstancia(); StringBuilder builder = new StringBuilder(); builder.append("http://") .append(fachada.getInstancia().retornaIpServidorNovoBatch()) .append("/autenticar_usuario"); url = new URL(builder.toString()); urlConn = url.openConnection(); urlConn.setDoInput(true); urlConn.setDoOutput(true); urlConn.setUseCaches(false); urlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); cgiInput = new DataOutputStream(urlConn.getOutputStream()); StringBuilder content = new StringBuilder(); content.append("usuario=").append(nomeUsuario) .append("token=").append(token); cgiInput.writeBytes(content.toString()); cgiInput.flush(); cgiInput.close(); response.sendRedirect(urlConn.getURL().toString()); } catch (Exception e) { e.printStackTrace(); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { Fachada fachada = Fachada.getInstancia(); String nomeUsuario = getNomeUsuario(request); String token = geraCodigoToken(nomeUsuario); StringBuilder builder = new StringBuilder(); builder.append("http://") .append(fachada.getInstancia().retornaIpServidorNovoBatch()); response.sendRedirect(builder.toString()); } catch (Exception e) { logger.error("Erro ao acessar operacional", e); } } private String geraCodigoToken(String nomeUsuario) { String md5 = null; if (nomeUsuario != null){ SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd-HH"); md5 = Util.md5(nomeUsuario + formato.format(Calendar.getInstance().getTime())); } return md5; } public String getNomeUsuario(HttpServletRequest request){ HttpSession session = ((HttpServletRequest) request).getSession(false); String nomeUsuario = null; if (session != null){ Usuario usuarioLogado = (Usuario) session.getAttribute("usuarioLogado"); if (usuarioLogado != null){ nomeUsuario = String.valueOf(usuarioLogado.getId()); } } return nomeUsuario; } }