1
22
23 package com.liferay.portal.servlet;
24
25 import com.liferay.portal.action.JSONServiceAction;
26 import com.liferay.portal.kernel.util.GetterUtil;
27 import com.liferay.portal.kernel.util.InstancePool;
28 import com.liferay.portal.model.User;
29 import com.liferay.portal.security.auth.PrincipalThreadLocal;
30 import com.liferay.portal.security.permission.PermissionChecker;
31 import com.liferay.portal.security.permission.PermissionCheckerFactory;
32 import com.liferay.portal.security.permission.PermissionThreadLocal;
33 import com.liferay.portal.service.UserLocalServiceUtil;
34
35 import javax.servlet.http.HttpServlet;
36 import javax.servlet.http.HttpServletRequest;
37 import javax.servlet.http.HttpServletResponse;
38
39 import org.apache.commons.logging.Log;
40 import org.apache.commons.logging.LogFactory;
41 import org.apache.struts.action.Action;
42
43
49 public class JSONServlet extends HttpServlet {
50
51 public void service(
52 HttpServletRequest request, HttpServletResponse response) {
53
54 PermissionChecker permissionChecker = null;
55
56 try {
57 String remoteUser = request.getRemoteUser();
58
59 if (_log.isDebugEnabled()) {
60 _log.debug("Remote user " + remoteUser);
61 }
62
63 if (remoteUser != null) {
64 PrincipalThreadLocal.setName(remoteUser);
65
66 long userId = GetterUtil.getLong(remoteUser);
67
68 User user = UserLocalServiceUtil.getUserById(userId);
69
70 permissionChecker = PermissionCheckerFactory.create(user, true);
71
72 PermissionThreadLocal.setPermissionChecker(permissionChecker);
73 }
74
75 Action action = (Action)InstancePool.get(
76 JSONServiceAction.class.getName());
77
78 action.execute(null, null, request, response);
79 }
80 catch (Exception e) {
81 _log.error(e, e);
82 }
83 finally {
84 try {
85 PermissionCheckerFactory.recycle(permissionChecker);
86 }
87 catch (Exception e) {
88 }
89 }
90 }
91
92 private static Log _log = LogFactory.getLog(JSONServlet.class);
93
94 }