1
22
23 package com.liferay.portal.events;
24
25 import com.liferay.portal.kernel.events.Action;
26 import com.liferay.portal.kernel.events.ActionException;
27 import com.liferay.portal.kernel.json.JSONFactoryUtil;
28 import com.liferay.portal.kernel.json.JSONObject;
29 import com.liferay.portal.kernel.messaging.DestinationNames;
30 import com.liferay.portal.kernel.messaging.MessageBusUtil;
31 import com.liferay.portal.kernel.servlet.HttpHeaders;
32 import com.liferay.portal.util.PortalUtil;
33 import com.liferay.portal.util.PropsValues;
34
35 import javax.servlet.http.HttpServletRequest;
36 import javax.servlet.http.HttpServletResponse;
37 import javax.servlet.http.HttpSession;
38
39 import org.apache.commons.logging.Log;
40 import org.apache.commons.logging.LogFactory;
41 import org.apache.struts.Globals;
42
43
49 public class LoginPostAction extends Action {
50
51 public void run(HttpServletRequest request, HttpServletResponse response)
52 throws ActionException {
53
54 try {
55 if (_log.isDebugEnabled()) {
56 _log.debug("Running " + request.getRemoteUser());
57 }
58
59 HttpSession session = request.getSession();
60
61 if (PropsValues.LIVE_USERS_ENABLED) {
62 long companyId = PortalUtil.getCompanyId(request);
63 long userId = PortalUtil.getUserId(request);
64 String sessionId = session.getId();
65 String remoteAddr = request.getRemoteAddr();
66 String remoteHost = request.getRemoteHost();
67 String userAgent = request.getHeader(HttpHeaders.USER_AGENT);
68
69 JSONObject jsonObj = JSONFactoryUtil.createJSONObject();
70
71 jsonObj.put("command", "signIn");
72 jsonObj.put("companyId", companyId);
73 jsonObj.put("userId", userId);
74 jsonObj.put("sessionId", sessionId);
75 jsonObj.put("remoteAddr", remoteAddr);
76 jsonObj.put("remoteHost", remoteHost);
77 jsonObj.put("userAgent", userAgent);
78
79 MessageBusUtil.sendMessage(
80 DestinationNames.LIVE_USERS, jsonObj.toString());
81 }
82
83 session.removeAttribute(Globals.LOCALE_KEY);
84 }
85 catch (Exception e) {
86 throw new ActionException(e);
87 }
88 }
89
90 private static Log _log = LogFactory.getLog(LoginPostAction.class);
91
92 }