package org.japanosample.action;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.japano.Session;
import org.japano.View;
import org.japano.action.ActionConfig;
import org.japano.action.ActionParameter;
import org.japano.action.ActionParameterValidator;
import org.japano.action.DefaultView;
import org.japanosample.SampleSession;
import org.japano.metadata.annotation.*;
import org.japanosample.User;
@JapanoAction ( library="/user" )
public class Login implements org.japano.action.Action, DefaultView
{
private static org.apache.log4j.Logger logger=org.apache.log4j.Logger.getLogger( Login.class);
private String EMail;
private String password;
private String view="/editUser.jsp";
@JapanoText ( maxLength=256)
@JapanoValidation ( regex="[A-Za-z\\.0-9-]+@[A-Za-z\\.0-9-]+",
errorMessage="Invalid email address", required=true )
public void setEMail(String EMail)
{
this.EMail = EMail;
}
@JapanoPassword ( maxLength=100 )
@JapanoValidation ( required=true )
public void setPassword(String password)
{
this.password = password;
}
@JapanoParameter
public void setView(String view)
{
this.view=view;
}
public void defaultView(HttpServletRequest request, HttpServletResponse response)
{
SampleSession session=(SampleSession)request.getSession();
User u=session.getUser();
View v=session.getView();
v.clearMessages();
if (u == null)
{ session.setView("/login.jsp");
}
else
{
session.setView(view);
}
if (logger.isDebugEnabled())
logger.debug("defaultView(request, response) => "+session.getView());
}
public void perform(HttpServletRequest request, HttpServletResponse response) throws IOException
{
SampleSession session=(SampleSession)request.getSession();
if (session.getUser() == null)
{
if (EMail == null || password == null)
{
session.getView().clearMessages();
session.setView("/login.jsp");
return;
}
if (session.login( EMail, password))
{
session.setView(view);
}
else
{
session.setView("/login.jsp");
session.addViewMessage("Login failed.");
}
}
else
{
session.setView(view);
}
}
}