1    package com.instantbank.collections.security.web;
2    
3    import java.io.IOException;
4    import java.io.OutputStreamWriter;
5    import java.io.PrintWriter;
6    import javax.servlet.RequestDispatcher;
7    import javax.servlet.ServletConfig;
8    import javax.servlet.ServletContext;
9    import javax.servlet.ServletException;
10   import javax.servlet.http.HttpServlet;
11   import javax.servlet.http.HttpServletRequest;
12   import javax.servlet.http.HttpServletResponse;
13   import javax.servlet.http.HttpSession;
14   import com.instantbank.collections.security.ejb.SecurityProfilesServices;
15   import com.instantbank.collections.security.ejb.SecurityProfilesServicesHome;
16   import com.instantbank.collections.security.ejb.SecurityServices;
17   import com.instantbank.collections.security.ejb.SecurityServicesHome;
18   import com.instantbank.collections.util.FilterChain;
19   import com.instantbank.collections.util.InstantbankException;
20   import com.instantbank.collections.util.ServiceLocator;
21   
22   
23   public class ChangePasswordController extends HttpServlet {
24     private Long companyId;
25     private String debug;
26     private Long maximunRows;
27     private SecurityProfilesServices PrfServices;
28     private SecurityServices SecServices;
29     private HttpSession session;
30   
31   
32     public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
33       doPost(request, response);
34     }
35   
36   
37     public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
38       String action = "";
39       com.instantbank.collections.util.FilterChain chain;
40   
41       debug = "set action";
42       try {
43         action = request.getParameter("action");
44         session = request.getSession(false);
45         session.setAttribute("hasException", "0");
46         try {
47           chain = new com.instantbank.collections.util.FilterChain(true, getServletConfig().getServletContext());
48           if(chain.processFilter(request, response)) {
49             return;
50           }
51           if(action.equals("initialize")) {
52             initialize(request, response);
53           }
54           else if(action.equals("ChangePassword")) {
55             changePassword(request, response);
56           }
57           else {
58             throw new InstantbankException("132001", "Action " + action + " not supported");
59           }
60         }
61         catch(Exception e) {
62           throw new InstantbankException(e, "132002", "Failed to execute controller action " + action);
63         }
64       }
65       catch(InstantbankException e) {
66         session.setAttribute("hasException", "1");
67         session.setAttribute("Exception", e);
68         if(response.isCommitted()) {
69           return;
70         }
71         response.sendRedirect("../main_web/ControllerError.jsp?showTechnical=0");
72       }
73     }
74   
75   
76     public String getServletInfo() {
77       return "com.instantbank.collections.security.web.SecurityReportController Information";
78     }
79   
80   
81     public void init(ServletConfig config) throws ServletException {
82       super.init(config);
83       try {
84         SecurityServicesHome SecHome = (SecurityServicesHome)
85           ServiceLocator.instance().createEJB("SecurityServicesHome", SecurityServicesHome.class, false);
86         SecServices = SecHome.create();
87         SecurityProfilesServicesHome PrfHome = (SecurityProfilesServicesHome)
88           ServiceLocator.instance().createEJB("SecurityProfilesServicesHome", SecurityProfilesServicesHome.class, false);
89         PrfServices = PrfHome.create();
90       }
91       catch(Exception e) {
92         throw new ServletException(e);
93       }
94     }
95   
96   
97     private void changePassword(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, InstantbankException {
98       Long userId;
99       String newPassword;
100      String message;
101      companyId = (Long)session.getAttribute("companyId");
102      userId = (Long)session.getAttribute("userId");
103      newPassword = request.getParameter("newPassword");
104      message = SecServices.updateUserPassword(userId, newPassword, companyId);
105      OutputStreamWriter osw = new OutputStreamWriter(response.getOutputStream());
106      PrintWriter out = new PrintWriter(osw);
107      out.println("<script>");
108      out.print("alert ('" + message + "');");
109      out.print("top.navigate('../security_web/SecurityDispatcher.jsp?useCase=Home');");
110      out.println("</script>");
111      out.close();
112    }
113  
114  
115    private void initialize(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, InstantbankException {
116      Long userId;
117      String oldPassword;
118  
119      userId = (Long)session.getAttribute("userId");
120      oldPassword = SecServices.getUserPassword(userId);
121      request.setAttribute("oldPassword", oldPassword);
122      ServletContext sc = getServletConfig().getServletContext();
123      RequestDispatcher rd = sc.getRequestDispatcher("/security_web/ChangePasswordView.jsp");
124      rd.forward(request, response);
125    }
126  }
127