package com.ai.parts;
import com.ai.application.interfaces.*;
import com.ai.application.utils.AppObjects;
import com.ai.common.*;
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
import java.util.Map;
import com.ai.servlets.AspireConstants;
import com.ai.aspire.authentication.*;
import com.ai.servlets.SWIHttpEvents;
import com.ai.servlets.AspireServletException;
public class AspireLoginPart extends AHttpPart
{
//*****************************************************************
//* Called by the framework
//*****************************************************************
protected Object executeRequestForHttpPart(String requestName
,HttpServletRequest request
,HttpServletResponse response
,HttpSession session
,Map inArgs)
throws RequestExecutionException
{
try
{
String username = (String)inArgs.get("username");
String password = (String)inArgs.get("password");
return new Boolean(login(username,password,request,response,session));
}
catch(AuthorizationException x)
{
throw new RequestExecutionException("Error:Invalid user",x);
}
catch(AspireServletException x)
{
throw new RequestExecutionException("Error:userlogin event error",x);
}
}
//*****************************************************************
//* Do the login
//*****************************************************************
private boolean login(String username, String password,
HttpServletRequest request,
HttpServletResponse response,
HttpSession session)
throws RequestExecutionException,
AuthorizationException,
AspireServletException
{
boolean validPassword = yourLogin(username,password);
if (validPassword == false)
{
//Invalid password
throw new AuthorizationException("INVALID_PASSWORD:userid or password is wrong");
}
//Good password. Set the username in session
session.setAttribute(AspireConstants.ASPIRE_USER_NAME_KEY,username);
//Kick off a user login event
SWIHttpEvents.userLogin(username,session,request,response);
//Indicate a successful login
session.setAttribute(AspireConstants.ASPIRE_LOGGEDIN_STATUS_KEY, "true");
return true;
}
//*****************************************************************
//* Use an authentication plugin to do the acutal login
//*****************************************************************
protected boolean yourLogin(String username, String password)
throws AuthorizationException
{
try
{
IAuthentication auth =
(IAuthentication)AppObjects.getObject(AspireConstants.AUTHENTICATION_OBJECT,null);
return auth.verifyPassword(username,password);
}
catch(RequestExecutionException x)
{
throw new AuthorizationException("Error:Could not get the authorization object",x);
}
}//eof-function
}//eof-class