KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sslexplorer > tunnels > actions > StartTunnelAction


1 /*
2  * SSL-Explorer
3  *
4  * Copyright (C) 2003-2006 3SP LTD. All Rights Reserved
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2 of
9  * the License, or (at your option) any later version.
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public
16  * License along with this program; if not, write to the Free Software
17  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  */

19             
20 package com.sslexplorer.tunnels.actions;
21
22 import javax.servlet.http.HttpServletRequest JavaDoc;
23 import javax.servlet.http.HttpServletResponse JavaDoc;
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 /**
46  * Implementation of {@link com.sslexplorer.core.actions.AuthenticatedAction}
47  * that starts a lauched <i>SSL Tunnel</i>
48  * <p>
49  * A <i>Launch Session</i> must already have been configured
50  *
51  * @author Brett Smith <a HREF="mailto: brett@3sp.com">&lt;brett@3sp.com&gt;</a>
52  */

53 public class StartTunnelAction extends AuthenticatedAction {
54
55     /*
56      * (non-Javadoc)
57      *
58      * @see com.sslexplorer.core.actions.AuthenticatedAction#getNavigationContext(org.apache.struts.action.ActionMapping,
59      * org.apache.struts.action.ActionForm,
60      * javax.servlet.http.HttpServletRequest,
61      * javax.servlet.http.HttpServletResponse)
62      */

63     public int getNavigationContext(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) {
64         return SessionInfo.USER_CONSOLE_CONTEXT | SessionInfo.MANAGEMENT_CONSOLE_CONTEXT;
65     }
66
67     /*
68      * (non-Javadoc)
69      *
70      * @see com.sslexplorer.core.actions.AuthenticatedAction#onExecute(org.apache.struts.action.ActionMapping,
71      * org.apache.struts.action.ActionForm,
72      * javax.servlet.http.HttpServletRequest,
73      * javax.servlet.http.HttpServletResponse)
74      */

75     public ActionForward onExecute(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
76                     throws Exception JavaDoc {
77         String JavaDoc launchId = request.getParameter(LaunchSession.LAUNCH_ID);
78         if (Util.isNullOrTrimmedBlank(launchId)) {
79             throw new Exception JavaDoc("No launchId parameter supplied.");
80         }
81         String JavaDoc returnTo = request.getParameter("returnTo");
82         if (Util.isNullOrTrimmedBlank(returnTo)) {
83             throw new Exception JavaDoc("No returnTo parameter supplied.");
84         }
85         LaunchSession launchSession = LaunchSessionFactory.getInstance().getLaunchSession(launchId);
86         if (launchSession == null) {
87             throw new Exception JavaDoc("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