| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- package id.co.hanoman.log.action;
- import java.net.InetAddress;
- import java.net.UnknownHostException;
- import java.util.List;
- import javax.servlet.ServletContext;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import org.apache.struts.action.Action;
- import org.apache.struts.action.ActionForm;
- import org.apache.struts.action.ActionForward;
- import org.apache.struts.action.ActionMapping;
- import id.co.hanoman.service.PersistanceServiceInterface;
- import id.co.hanoman.service.ServiceUtil;
- import id.co.hanoman.service.as400.AS400ServiceInterface;
- import id.co.hanoman.shared.Constant;
- import id.co.hanoman.shared.Util;
- /**
- * LoginAction merupakan action yang dipanggil untuk menjalankan fungsi-fungsi
- * login user ke aplikasi
- *
- * @author Hanoman Interaktif<BR>
- * (C) <a href="http://www.hanoman.co.id">Hanoman Interaktif.</a>
- * @version 1.0
- */
- public class LoginAction extends Action {
- protected Log log = LogFactory.getLog(this.getClass());
- public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
- System.out.println("******************************* LOGIN ******************************* ");
- AS400ServiceInterface as400ServiceInterface = new AS400ServiceInterface();
- // System.out.println("queryBiller ::::::::::::::::::;;
- // "+as400ServiceInterface.queryBiller(Constant.MWAPP_EPAY_DS, null));
- ActionForward forward = null;
- String action = request.getParameter("action");
- response.setHeader("Pragma", "no-cache");
- String themes = (String) request.getSession().getAttribute("user.themes");
- if (Util.isNullOrEmpty(themes)) {
- themes = Constant.DEFAULT;
- request.getSession().setAttribute("user.themes", themes);
- }
- request.getSession().setAttribute("currentLocale", Constant.locale);
- /* todo:sena */
- String callerPrincipal = request.getUserPrincipal().getName();
- if (callerPrincipal != null) {
- clearSession(request);
- } else
- clearSession(request);
- if ("logout".equalsIgnoreCase(action)) {
- request.getSession().invalidate();
- response.sendRedirect("login.do");
- return null;
- }
- forward = doLoginOk(mapping, form, request, response);
- return forward;
- }
- public void clearSession(HttpServletRequest request) throws Exception {
- request.getSession().removeAttribute("login.user");
- request.getSession().removeAttribute("userError");
- request.getSession().removeAttribute("myMenu");
- }
- public ActionForward doLoginOk(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
- if (request.getParameter(Constant.CLEAR) != null && Constant.TRUE.equalsIgnoreCase(request.getParameter(Constant.CLEAR)))
- clearSession(request);
- ActionForward forward = null;
- try {
- log.info("remote address == " + request.getRemoteAddr());
- Address();
- ServletContext ctx = getServlet().getServletContext();
- PersistanceServiceInterface psiConfig = ServiceUtil.getDaoClient(ctx);
- /* todo:sena */
- String callerPrincipal = request.getUserPrincipal().getName();
- log.info("User Login ::::::::::::::::::::::::::::::::::::::::::::::::" + callerPrincipal);
- // Subject subject = WSSubject.getCallerSubject();
- // Set credSet = subject.getPublicCredentials(WSCredential.class);
- // List objRoleCaller = new ArrayList();
- // for (Iterator iterator = credSet.iterator(); iterator.hasNext();) {
- // WSCredential objectWSCredential = (WSCredential) iterator.next();
- // List groupIdCallerSubject = objectWSCredential.getGroupIds();
- // // log.info("user group"+BeanUtil.dumpBean(groupIdCallerSubject));
- // for (Object groupIdCallerSubjectItem : groupIdCallerSubject) {
- // String strGroupIdCallerSubjectItem = (String) groupIdCallerSubjectItem;
- // strGroupIdCallerSubjectItem =
- // strGroupIdCallerSubjectItem.substring(strGroupIdCallerSubjectItem.toLowerCase().indexOf("cn=")
- // + 3);
- // strGroupIdCallerSubjectItem = strGroupIdCallerSubjectItem.substring(0,
- // strGroupIdCallerSubjectItem.indexOf(','));
- // objRoleCaller.add(strGroupIdCallerSubjectItem);
- // }
- // log.info("user group from ldap : " + BeanUtil.dumpBean(objRoleCaller));
- //
- // }
- Util util = new Util();
- List objRoleCaller = util.objRoller(callerPrincipal);
- if (callerPrincipal != null) {
- log.info("START MENU LOGIN ACTION");
- String menu = Util.getMenu(psiConfig, request, callerPrincipal, objRoleCaller);
- log.info("END MENU LOGIN ACTION");
- try {
- HttpSession session = request.getSession();
- session.setAttribute("login.user", callerPrincipal);
- session.setAttribute("objRoleCaller", objRoleCaller);
- session.setAttribute("myMenu", menu);
- } catch (Exception e) {
- log.info(e);
- }
- // PersistanceServiceInterface psiEpay = ServiceUtil.getEPayDaoClient(ctx);
- // AS400ServiceInterface psiBiller = ServiceUtil.getAS400ServiceClient(ctx);
- // setBillerDataPageList(request, psiEpay, psiBiller);
- // panggil menu
- // Util.updateMenu(psiConfig, request, callerPrincipal, objRoleCaller);
- } else {
- request.getSession().setAttribute("userError", "This user does not exist");
- }
- } catch (Exception e) {
- e.printStackTrace();
- request.getSession().setAttribute("userError", "Null User");
- }
- if (Util.isNullOrEmpty((String) request.getSession().getAttribute("userError"))) {
- forward = mapping.findForward("success");
- } else {
- forward = mapping.findForward("failure");
- }
- return forward;
- }
- private void Address() throws UnknownHostException {
- InetAddress address = InetAddress.getLocalHost();
- log.info("address.getHostAddress() == " + address.getHostAddress());
- log.info("address.getHostName() == " + address.getHostName());
- try {
- log.info("address.getLocalHost() == " + InetAddress.getLocalHost().getCanonicalHostName());
- } catch (UnknownHostException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- /*
- * private void setBillerDataPageList(HttpServletRequest request,
- * PersistanceServiceInterface psiEpay, AS400ServiceInterface psiBiller) {
- * Thread t = new Thread(new Runnable() { HttpServletRequest request;
- * AS400ServiceInterface psiBiller; public Runnable init(HttpServletRequest
- * request, AS400ServiceInterface psiBiller) { this.request = request;
- * this.psiBiller = psiBiller; return this; }
- *
- * @Override public void run() { synchronized (LoginAction.class) { try {
- * BillerQuery[] billers = psiBiller.queryBiller("");
- * request.getSession().setAttribute("billers", billers);
- * log.info("biller:::::"+BeanUtil.dumpBean(billers)); } catch (Exception e) {
- * log.error(e.getMessage(), e); } LoginAction.class.notifyAll(); } }
- * }.init(request, psiBiller)); t.start(); }
- */
- /**
- * Method untuk logout dari web EPAYMENT
- *
- * @param mapping Action untuk melakukan redirect ke action form yang ingin
- * dipanggil.
- * @param form Action yang dipanggil sesuai dengan form yang ada di jsp.
- * @param request Memanggil informasi HTTP servlet.
- * @param response Mengirimkan response informasi HTTP servlet
- * @return object forward yang berisi action form yang dipanggil
- */
- public ActionForward doLogout(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
- ActionForward forward = null;
- try {
- log.info("after set strust LOGOUT");
- request.getSession().invalidate();
- HttpSession s = request.getSession(false);
- s = null;
- // response.sendRedirect("ibm_security_logout?logoutExitPage=login.jsp");
- // forward = mapping.findForward("logout");
- // response.sendRedirect("logout.jsp");
- // return null;
- } catch (Exception e) {
- e.printStackTrace();
- }
- return forward;
- }
- }
|