/***********************************************************************
 *
 * JISC.LoginPageHandler.java
 *
 * --------------------------------------------------------------------
 *
 * @author Dennis Laws
 * @version 0.0
 *
 **********************************************************************/

//*********************//
//      Package        //
//*********************//
package JISC;
 
//*********************//
//      Imports        //
//*********************//
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;


/***********************************************************************
 * A Basic Handler to generate my LoginPage.
 * <P>
 * This page contains my LoginForm and allow a client to login.  Input
 * from this form is handled by my LoginFormHandler.
 **********************************************************************/
public class LoginPageHandler
    implements SecureHandler
{
    //--------------------
    // Class Constants
    //--------------------
    private static final String HANDLER_NAME = new String("LoginPage");


    //--------------------
    // Instance Attributes
    //--------------------
    private ServletConfig   m_config;


    /*******************************************************************
     * Constructor.
     *
     * @param	config	Configuration information.
     *******************************************************************/
    public LoginPageHandler( ServletConfig config )
    {
        m_config  = config;
    }


    /*******************************************************************
     * Performs primary processing of client request.
     *
     * @param   request     Provides incoming information from
     *                      requesting client.
     * @param   response    Provides resources for sending information
     *                      to the requesting client.
     *******************************************************************/
    public void doProcessing( HttpServletRequest request,
                              HttpServletResponse response )
        throws ServletException, IOException
    {
        
        if (request.getProtocol().startsWith("HTTP/"))
        {
            String temp = request.getRequestURL().toString();
            // request.getRequestDispatcher("HTTPS://");
        }
        
        
        
        String strUserName = request.getParameter(RequestID.PARAM_USER_NAME);
        
        //----------------------------------
        // Generate response
        //----------------------------------
        response.setContentType("text/html");

        PrintWriter out = response.getWriter();
        
        UtilWriter utilWriter = UtilWriter.get(request,response);

        utilWriter.startHtmlDoc();

        if ( strUserName != null )
        {
            // User Authentication Failed            
            out.println("    <H2 ALIGN=CENTER>User Authentication Failed</H2>");
        }

        out.println("    <CENTER>");
        out.println("      Enter you user name and password to login to the site.");
        out.println("    </CENTER>");
        
        utilWriter.startForm(RequestID.FORM_LOGIN);
        
        out.println("      <TABLE ALIGN=CENTER>");
        out.println("        <TR>");
        out.println("          <TD><STRONG>User Name:</STRONG></TD>");
        out.println("          <TD><INPUT type=\"TEXT\"");
        out.println("                     name=\"" + RequestID.PARAM_USER_NAME + "\"");

        if ( strUserName != null )
        {
            out.println("                     value=\"" + strUserName + "\"");
        }
        
        out.println("                     size=\"20\" maxlength=\"20\"></TD>");
        out.println("        </TR>");
        out.println("        <TR>");
        out.println("          <TD><STRONG>Password:</STRONG></TD>");
        out.println("          <TD><INPUT type=\"PASSWORD\"");
        out.println("                     name=\"" + RequestID.PARAM_PASSWORD + "\"");
        out.println("                     size=\"20\" maxlength=\"20\"></TD>");
        out.println("        </TR>");
        out.println("        <TR>");
        out.println("          <TD colspan=\"2\" align=\"center\">");
        out.println("            <INPUT type=\"SUBMIT\" value=\"Login\">");
        out.println("          </TD>");
        out.println("        </TR>");
        out.println("      </TABLE>");
        out.println("    </FORM>");
            
        utilWriter.endHtmlBody();
    }


    /*******************************************************************
     * Returns the name of this handler.
     * @return  The name associated with this BasicHandler class.
     *******************************************************************/
    public String getName()
    {
        return HANDLER_NAME;
    }

    public String getDesiredScheme()
    {
        return "https";
    }

    public int getDesiredPort()
    {
        return 8443;
    }
    
}
