package demo5.server; import org.openswing.swing.server.*; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import org.openswing.swing.message.receive.java.*; import java.sql.*; /** * <p>Title: OpenSwing Framework</p> * <p>Description: Logic Action Class.</p> * <p>Copyright: Copyright (C) 2006 Mauro Carniel</p> * <p> </p> * @author Mauro Carniel * @version 1.0 */ public class DemoLoginAction extends LoginAction { public DemoLoginAction() { } /** * Login operation. */ public final Response executeCommand(Object inputPar,UserSessionParameters userSessionPars,HttpServletRequest request, HttpServletResponse response,HttpSession userSession,ServletContext context) { PreparedStatement stmt = null; Connection conn = null; try { String username = ((String[])inputPar)[0]; String password = ((String[])inputPar)[1]; conn = ConnectionManager.getConnection(context); stmt = conn.prepareStatement("select LANGUAGE_ID from DEMO5_USERS where USERNAME='"+username.toUpperCase()+"' and PASSWORD='"+password.toUpperCase()+"'"); ResultSet rset = stmt.executeQuery(); String languageId = null; if (rset.next()) { languageId = rset.getString(1); TextResponse tr = new TextResponse(languageId); SessionIdGenerator gen = (SessionIdGenerator)context.getAttribute(Controller.SESSION_ID_GENERATOR); tr.setSessionId(gen.getSessionId(request,response,userSession,context)); Hashtable userSessions = (Hashtable)context.getAttribute(Controller.USER_SESSIONS); HashSet authenticatedIds = (HashSet)context.getAttribute(Controller.SESSION_IDS); if (userSessionPars!=null) { userSessions.remove(userSessionPars.getSessionId()); authenticatedIds.remove(userSessionPars.getSessionId()); } userSessionPars = new UserSessionParameters(); userSessionPars.setSessionId(tr.getSessionId()); userSessionPars.setUsername(username); userSessions.put(tr.getSessionId(),userSessionPars); userSessionPars.setLanguageId(languageId); authenticatedIds.add(tr.getSessionId()); return tr; } else return new ErrorResponse("User not valid"); } catch (Exception ex1) { ex1.printStackTrace(); return new ErrorResponse(ex1.getMessage()); } finally { try { stmt.close(); } catch (Exception ex) { } try { ConnectionManager.releaseConnection(conn,context); } catch (Exception ex2) { } } } }