1
14
15 package com.liferay.portal.servlet;
16
17 import com.liferay.portal.kernel.util.StringPool;
18 import com.liferay.portal.kernel.util.Validator;
19 import com.liferay.portal.util.CookieKeys;
20 import com.liferay.portal.util.PortalUtil;
21
22 import java.io.IOException;
23
24 import javax.servlet.http.HttpServletRequest;
25 import javax.servlet.http.HttpServletResponse;
26 import javax.servlet.http.HttpServletResponseWrapper;
27
28
33 public class AbsoluteRedirectsResponse extends HttpServletResponseWrapper {
34
35 public AbsoluteRedirectsResponse(
36 HttpServletRequest request, HttpServletResponse response) {
37
38 super(response);
39
40 _request = request;
41 }
42
43 public void sendRedirect(String redirect) throws IOException {
44 String portalURL = getPortalURL();
45
46 if (Validator.isNotNull(portalURL) &&
47 redirect.startsWith(StringPool.SLASH)) {
48
49 redirect = portalURL + redirect;
50 }
51
52 if (!CookieKeys.hasSessionId(_request)) {
53 redirect = PortalUtil.getURLWithSessionId(
54 redirect, _request.getSession().getId());
55 }
56
57 _request.setAttribute(
58 AbsoluteRedirectsResponse.class.getName(), redirect);
59
60 super.sendRedirect(redirect);
61 }
62
63 protected String getPortalURL() {
64 return PortalUtil.getPortalURL(_request);
65 }
66
67 private HttpServletRequest _request;
68
69 }