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.PermissionCheckerFactory;
31 import com.liferay.portal.security.permission.PermissionCheckerImpl;
32 import com.liferay.portal.security.permission.PermissionThreadLocal;
33 import com.liferay.portal.service.UserLocalServiceUtil;
34
35 import java.io.IOException;
36
37 import javax.servlet.ServletException;
38 import javax.servlet.http.HttpServlet;
39 import javax.servlet.http.HttpServletRequest;
40 import javax.servlet.http.HttpServletResponse;
41
42 import org.apache.commons.logging.Log;
43 import org.apache.commons.logging.LogFactory;
44 import org.apache.struts.action.Action;
45
46
52 public class JSONServlet extends HttpServlet {
53
54 public void service(HttpServletRequest req, HttpServletResponse res)
55 throws IOException, ServletException {
56
57 PermissionCheckerImpl permissionChecker = null;
58
59 try {
60 String remoteUser = req.getRemoteUser();
61
62 if (_log.isDebugEnabled()) {
63 _log.debug("Remote user " + remoteUser);
64 }
65
66 if (remoteUser != null) {
67 PrincipalThreadLocal.setName(remoteUser);
68
69 long userId = GetterUtil.getLong(remoteUser);
70
71 User user = UserLocalServiceUtil.getUserById(userId);
72
73 permissionChecker = PermissionCheckerFactory.create(user, true);
74
75 PermissionThreadLocal.setPermissionChecker(permissionChecker);
76 }
77
78 Action action = (Action)InstancePool.get(
79 JSONServiceAction.class.getName());
80
81 action.execute(null, null, req, res);
82 }
83 catch (Exception e) {
84 _log.error(e, e);
85 }
86 finally {
87 try {
88 PermissionCheckerFactory.recycle(permissionChecker);
89 }
90 catch (Exception e) {
91 }
92 }
93 }
94
95 private static Log _log = LogFactory.getLog(JSONServlet.class);
96
97 }