KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > claros > chat > ajax > Authenticate


1 package org.claros.chat.ajax;
2
3 import java.io.IOException JavaDoc;
4 import java.io.PrintWriter JavaDoc;
5
6 import javax.servlet.ServletException JavaDoc;
7 import javax.servlet.http.HttpServlet JavaDoc;
8 import javax.servlet.http.HttpServletRequest JavaDoc;
9 import javax.servlet.http.HttpServletResponse JavaDoc;
10
11 import org.apache.commons.logging.Log;
12 import org.apache.commons.logging.LogFactory;
13 import org.claros.chat.controllers.TrafficController;
14 import org.claros.chat.threads.ChatListener;
15 import org.claros.chat.threads.ChatSender;
16 import org.jivesoftware.smack.GoogleTalkConnection;
17 import org.jivesoftware.smack.XMPPConnection;
18 import org.jivesoftware.smack.XMPPException;
19
20 public class Authenticate extends HttpServlet JavaDoc {
21     private static Log log = LogFactory.getLog(Authenticate.class);
22
23     /**
24      *
25      */

26     private static final long serialVersionUID = 6002125607784963740L;
27     /**
28      * Constructor of the object.
29      */

30     public Authenticate() {
31         super();
32     }
33
34     /**
35      * The doPost method of the servlet. <br>
36      *
37      * This method is called when a form has its tag value method equals to post.
38      *
39      * @param request the request send by the client to the server
40      * @param response the response send by the server to the client
41      * @throws ServletException if an error occurred
42      * @throws IOException if an error occurred
43      */

44     public void doPost(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
45             throws ServletException JavaDoc, IOException JavaDoc {
46         response.setHeader("Expires","-1");
47         response.setHeader("Pragma","no-cache");
48         response.setHeader("Cache-control","no-cache");
49
50         response.setContentType("text/html");
51         PrintWriter JavaDoc out = response.getWriter();
52
53         String JavaDoc username = request.getParameter("username");
54         request.getSession().setAttribute("user", username);
55         String JavaDoc password = request.getParameter("password");
56         String JavaDoc server = request.getParameter("server");
57
58         try {
59             XMPPConnection connection = null;
60             if (server == null || server.equals("Google Talk")) {
61                 try {
62                     connection = new GoogleTalkConnection();
63                     if (username.indexOf("@") > 0) {
64                         username = username.substring(0, username.indexOf("@"));
65                     }
66                 } catch (Exception JavaDoc e1) {
67                     throw e1;
68                 }
69             } else {
70                 try {
71                     connection = new XMPPConnection(server, 5222);
72                 } catch (Exception JavaDoc e1) {
73                     throw e1;
74                 }
75             }
76
77             try {
78                 connection.login(username, password);
79                 log.debug("connection established for user: " + username);
80             } catch (XMPPException e) {
81                 throw e;
82             }
83             request.getSession().setAttribute("conn", connection);
84
85             // start the user's chat listener thread
86
String JavaDoc user = connection.getUser();
87             if (request.getSession().getAttribute("listener") == null) {
88                 ChatListener list = new ChatListener(user, connection);
89                 TrafficController.addListener(user, list);
90                 list.start();
91                 log.debug("listener created and added to the traffic controller for user: " + username);
92             }
93
94             if (request.getSession().getAttribute("sender") == null) {
95                 // start user's chat sender thread
96
ChatSender sender = new ChatSender(username, connection);
97                 TrafficController.addSender(user, sender);
98                 sender.start();
99                 log.debug("sender created and added to the traffic controller for user: " + username);
100             }
101             
102             out.print("ok");
103         } catch (Exception JavaDoc e) {
104             out.print("fail");
105         }
106         log.debug("authentication complete finishing servlet for user: " + username);
107 // out.flush();
108
// out.close();
109
}
110 }
111
Popular Tags