1 4 package com.sslexplorer.agent; 5 6 import com.sslexplorer.boot.RequestHandlerRequest; 7 import com.sslexplorer.security.LogonControllerFactory; 8 import com.sslexplorer.security.SessionInfo; 9 import com.sslexplorer.security.User; 10 11 class DummyAgentCallback extends DefaultAgentCallback { 12 13 public User authenticate(RequestHandlerRequest request) { 14 15 18 SessionInfo session = DefaultAgentManager.getInstance().getSessionByAgentId((String ) request.getParameters().get("ticket")); 19 if (session == null) { 20 if (!ok(request)) { 21 return null; 22 } 23 try { 24 session = (SessionInfo) LogonControllerFactory.getInstance().getActiveSessions().values().iterator().next(); 25 if (session == null) 26 return null; 27 AgentUnregisterHook.register(session); 28 return session.getUser(); 29 } catch (Exception e) { 30 log.error("Failed to configure session.", e); 31 } 32 33 } 34 return super.authenticate(request); 35 } 36 37 public AgentTunnel createAgent(String remoteHost, User user, String type, RequestHandlerRequest connectionParameters) 38 throws AgentException { 39 40 if (type.equals(DEFAULT_AGENT_TYPE)) { 41 SessionInfo session = (SessionInfo) LogonControllerFactory.getInstance().getActiveSessions().values().iterator().next(); 42 if (session == null) 43 throw new AgentException("No session to attach to"); 44 45 String ticket = (String ) connectionParameters.getParameters().get("ticket"); 46 AgentTunnel t = new AgentTunnel(ticket, session, user, DEFAULT_AGENT_TYPE, new DefaultAgentChannelFactory()); 47 DefaultAgentManager.getInstance().registerAgent(ticket, session, t); 48 AgentUnregisterHook.register(session); 49 return t; 50 } else { 51 throw new AgentException("Not supported by the callback"); 52 } 53 } 54 55 protected boolean ok(RequestHandlerRequest request) { 56 return true; 57 } 58 } | Popular Tags |