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("");
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);
}
}