1 19 20 package com.sslexplorer.agent.actions; 21 22 import javax.servlet.http.HttpServletRequest ; 23 import javax.servlet.http.HttpServletResponse ; 24 25 import org.apache.struts.action.ActionForm; 26 import org.apache.struts.action.ActionMapping; 27 28 import com.sslexplorer.agent.DefaultAgentManager; 29 import com.sslexplorer.extensions.ExtensionDescriptor; 30 import com.sslexplorer.extensions.actions.AbstractLaunchViaAppletAction; 31 import com.sslexplorer.extensions.store.ExtensionStore; 32 import com.sslexplorer.policyframework.LaunchSession; 33 import com.sslexplorer.policyframework.NoPermissionException; 34 import com.sslexplorer.policyframework.PolicyConstants; 35 import com.sslexplorer.policyframework.PolicyUtil; 36 import com.sslexplorer.security.Constants; 37 import com.sslexplorer.security.LogonControllerFactory; 38 import com.sslexplorer.security.SessionInfo; 39 40 41 46 public class LaunchAgentAction extends AbstractLaunchViaAppletAction { 47 48 56 @Override 57 protected ExtensionDescriptor getExtensionDescriptor(ActionMapping mapping, ActionForm form, HttpServletRequest request, 58 HttpServletResponse response) throws Exception { 59 try { 60 PolicyUtil.checkPermission(PolicyConstants.AGENT_RESOURCE_TYPE, PolicyConstants.PERM_USE, request); 61 } catch (NoPermissionException e) { 62 throw new NoPermissionException("Contact your administrator to use the SSL-Explorer agent.", 63 e, 64 LogonControllerFactory.getInstance().getUser(request), 65 PolicyConstants.AGENT_RESOURCE_TYPE); 66 } 67 return ExtensionStore.getInstance().getExtensionDescriptor("sslexplorer-agent"); 68 } 69 70 78 @Override 79 public int getNavigationContext(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { 80 return SessionInfo.USER_CONSOLE_CONTEXT | SessionInfo.MANAGEMENT_CONSOLE_CONTEXT; 81 } 82 83 @Override 84 protected void postSetup(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response, 85 LaunchSession launchSession) { 86 String ticket = DefaultAgentManager.getInstance().registerPendingAgent(getSessionInfo(request)); 87 launchSession.setAttribute(Constants.LAUNCH_ATTR_AGENT_TICKET, ticket); 88 89 } 90 91 } 92 | Popular Tags |