package com.robinson.servlet; import com.robinson.sql.*; import com.robinson.util.ADAuth; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import java.sql.Connection; import java.sql.SQLException; import java.sql.DriverManager; import java.io.IOException; import java.io.PrintWriter; /** * Code copyright Sean Robinson */ public class MainServlet extends HttpServlet { private String title; private String dbtype; private String dburl; private String domain; private String server; private String port; private Connection dbcon; private InkSQL inkSQL; private InventorySQL invSQL; private PrinterSQL printSQL; private TeacherSQL teachSQL; private UserSQL userSQL; public void init(ServletConfig config) throws ServletException { title = config.getServletContext().getInitParameter("title"); dbtype = config.getServletContext().getInitParameter("dbtype"); dburl = config.getServletContext().getInitParameter("dburl"); domain = config.getServletContext().getInitParameter("domain"); server = config.getServletContext().getInitParameter("server"); port = config.getServletContext().getInitParameter("port"); try { Class.forName(dbtype).newInstance(); dbcon = DriverManager.getConnection(dburl,"root","root"); inkSQL = new InkSQL(dbcon); invSQL = new InventorySQL(dbcon); printSQL = new PrinterSQL(dbcon); teachSQL = new TeacherSQL(dbcon); userSQL = new UserSQL(dbcon); } catch (Exception e){ throw new ServletException(e); } } public String getPath(HttpServletRequest request, String path) { return request.getContextPath()+request.getServletPath()+"/"+path; } public void checkSession(HttpServletRequest request, HttpServletResponse response) throws IOException { if(request.getSession().getAttribute("user") == null){ response.sendRedirect(getPath(request,"Login")); } } public void printTop(HttpServletRequest request, HttpServletResponse response, boolean print) throws IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("\n" + "\n" + "\n" + ""+title+"\n" + "\n" + "\n"); if(print){ out.println("

Printing Inventory

"); } else { out.println(""); } } public void printBottom(HttpServletRequest request, HttpServletResponse response) throws IOException { PrintWriter out = response.getWriter(); out.println("

Design and Code © Sean Robinson\n" + "\n" + "\n"); } public void printLogin(HttpServletRequest request, HttpServletResponse response) throws IOException { PrintWriter out = response.getWriter(); printTop(request,response,false); out.println("
\n" + "

Username: \n" + "

\n" + "

Password: \n" + " \n" + "

\n" + "

\n" + " \n" + "

\n" + "
"); printBottom(request,response); } public void executeLogin(HttpServletRequest request, HttpServletResponse response) throws IOException, SQLException { String user = request.getParameter("user"); String pass = request.getParameter("password"); if(user == null || pass == null || user.equals("")||pass.equals("")){ response.sendRedirect(getPath(request,"Login?reason=1")); } else { if(userSQL.isUser(user)){ if(ADAuth.authenticate(domain,server,port,user,pass)){ request.getSession().setAttribute("user",user); response.sendRedirect(getPath(request,"Home")); } else { response.sendRedirect(getPath(request,"Login?reason=3")); } } else { response.sendRedirect(getPath(request,"Login?reason=2")); } } } public void printHome(HttpServletRequest request, HttpServletResponse response) throws IOException { PrintWriter out = response.getWriter(); checkSession(request,response); printTop(request,response,false); out.println("

System Panel

"); out.println("Manage Inventory"); out.println("Manage Ink/Toner"); out.println("Manage Printers"); out.println("Manage Teachers"); printBottom(request,response); } public void managePath(HttpServletRequest request,HttpServletResponse response) throws IOException, SQLException { String path = request.getPathInfo(); if(path == null || path.equals("")){ response.sendRedirect(getPath(request,"Home")); } else { if(path.equals("/")){ response.sendRedirect(getPath(request,"Home")); } else if (path.equals("/Home")){ printHome(request,response); } else if (path.equals("/Login")){ printLogin(request,response); } else if (path.equals("/Verify_Login")){ executeLogin(request,response); } else if (path.equals("/View")){ } } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException { try { managePath(request,response); } catch (Exception e) { throw new ServletException(e); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException { doGet(request, response); } }