KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sslexplorer > agent > DummyAgentCallback


1 /**
2  *
3  */

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         /**
16          * Perform an authentication based on the ticket provided in the request
17          */

18         SessionInfo session = DefaultAgentManager.getInstance().getSessionByAgentId((String JavaDoc) 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 JavaDoc e) {
30                 log.error("Failed to configure session.", e);
31             }
32
33         }
34         return super.authenticate(request);
35     }
36
37     public AgentTunnel createAgent(String JavaDoc remoteHost, User user, String JavaDoc 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 JavaDoc ticket = (String JavaDoc) 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