package
org.projectapollo.demo.SessionExpired;
import apollo.*;
import apollo.Template.*;
import apollo.Storable.*;
import
org.projectapollo.demo.Storable.*;
import java.util.*;
import apollo.Session.*;
public class
SessionExpiredBroker extends
PageBroker {
public
SessionExpiredBroker(ManagerTracker MT,String fquid,PageBroker PB) throws
TemplatePageException {
super(MT,fquid,PB);
MT.getPM().registerTemplatePage(FQUID, new
TemplatePage(MT,this));
}
public
HTTPResponse render(TransactionTracker TT, HTTPRequest req, WebSession
thisSession) throws
ApolloException {
if
(req.hasValue("SessionRevivalLogin"))
{
User user = (User) thisSession.getValue("User");
if
(user !=null
&& user.getUserID() != null
&& user.getUserID().equals(req.getValue("SessionRevivalLogin")))
{
if
(user.getPassword().equals(req.getValue("SessionRevivalPassword")))
{
thisSession.setExpired(false);
//Resume original
request
HTTPRequest origReq = (HTTPRequest) thisSession.getValue("SessionRevivalRequest");
thisSession.remove("SessionRevivalRequest");
return
MT.getPM().handleRequest(TT, origReq.getValue("PageHandler"),
origReq, thisSession);
}
}
return
MT.getPM().getPage(FQUID).render(null,thisSession);
} else
{
thisSession.put("SessionRevivalRequest",
req); //Save their current
request
return
MT.getPM().getPage(FQUID).render(null,thisSession);
}
}
}