1 19 20 package com.sslexplorer.tunnels.actions; 21 22 import javax.servlet.http.HttpServletRequest ; 23 import javax.servlet.http.HttpServletResponse ; 24 25 import org.apache.struts.Globals; 26 import org.apache.struts.action.ActionForm; 27 import org.apache.struts.action.ActionForward; 28 import org.apache.struts.action.ActionMapping; 29 import org.apache.struts.action.ActionMessage; 30 import org.apache.struts.action.ActionMessages; 31 32 import com.sslexplorer.agent.DefaultAgentManager; 33 import com.sslexplorer.boot.Util; 34 import com.sslexplorer.core.BundleActionMessage; 35 import com.sslexplorer.core.CoreException; 36 import com.sslexplorer.core.RedirectWithMessages; 37 import com.sslexplorer.core.actions.AuthenticatedAction; 38 import com.sslexplorer.policyframework.LaunchSession; 39 import com.sslexplorer.policyframework.LaunchSessionFactory; 40 import com.sslexplorer.policyframework.NoPermissionException; 41 import com.sslexplorer.security.SessionInfo; 42 import com.sslexplorer.tunnels.TunnelPlugin; 43 import com.sslexplorer.tunnels.TunnelingService; 44 45 53 public class StartTunnelAction extends AuthenticatedAction { 54 55 63 public int getNavigationContext(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { 64 return SessionInfo.USER_CONSOLE_CONTEXT | SessionInfo.MANAGEMENT_CONSOLE_CONTEXT; 65 } 66 67 75 public ActionForward onExecute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) 76 throws Exception { 77 String launchId = request.getParameter(LaunchSession.LAUNCH_ID); 78 if (Util.isNullOrTrimmedBlank(launchId)) { 79 throw new Exception ("No launchId parameter supplied."); 80 } 81 String returnTo = request.getParameter("returnTo"); 82 if (Util.isNullOrTrimmedBlank(returnTo)) { 83 throw new Exception ("No returnTo parameter supplied."); 84 } 85 LaunchSession launchSession = LaunchSessionFactory.getInstance().getLaunchSession(launchId); 86 if (launchSession == null) { 87 throw new Exception ("Invalid launchId parameter supplied."); 88 } 89 try { 90 launchSession.checkAccessRights(null, getSessionInfo(request)); 91 ((TunnelingService) DefaultAgentManager.getInstance().getService(TunnelingService.class)) 92 .startTunnel(launchSession); 93 ActionMessages msgs = new ActionMessages(); 94 msgs.add(Globals.MESSAGE_KEY, new BundleActionMessage(TunnelPlugin.MESSAGE_RESOURCES_KEY, "tunnels.started", launchSession.getResource().getResourceName())); 95 saveMessages(request, msgs); 96 if (!Util.isNullOrTrimmedBlank(request.getParameter("returnTo"))) { 97 return new RedirectWithMessages(request.getParameter("returnTo"), request); 98 } 99 } catch (CoreException ce) { 100 ActionMessages msgs = new ActionMessages(); 101 msgs.add(Globals.ERROR_KEY, ce.getBundleActionMessage()); 102 saveErrors(request, msgs); 103 } catch (NoPermissionException e) { 104 ActionMessages msgs = new ActionMessages(); 105 msgs.add(Globals.ERROR_KEY, new ActionMessage("tunnels.noPermission", launchSession.getResource().getResourceName())); 106 saveErrors(request, msgs); 107 } 108 return new RedirectWithMessages(returnTo, request); 109 110 } 111 } 112 | Popular Tags |