001
014
015 package com.liferay.portal.servlet.filters.absoluteredirects;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019 import com.liferay.portal.kernel.servlet.TryFilter;
020 import com.liferay.portal.kernel.servlet.WrapHttpServletResponseFilter;
021 import com.liferay.portal.kernel.util.StringPool;
022 import com.liferay.portal.service.ServiceContext;
023 import com.liferay.portal.service.ServiceContextFactory;
024 import com.liferay.portal.service.ServiceContextThreadLocal;
025 import com.liferay.portal.servlet.filters.BasePortalFilter;
026 import com.liferay.portal.util.PortalInstances;
027 import com.liferay.portal.util.PortalUtil;
028 import com.liferay.portal.util.WebKeys;
029
030 import javax.servlet.http.HttpServletRequest;
031 import javax.servlet.http.HttpServletResponse;
032 import javax.servlet.http.HttpSession;
033
034
045 public class AbsoluteRedirectsFilter
046 extends BasePortalFilter
047 implements TryFilter, WrapHttpServletResponseFilter {
048
049 public Object doFilterTry(
050 HttpServletRequest request, HttpServletResponse response)
051 throws Exception {
052
053 request.setCharacterEncoding(StringPool.UTF8);
054
055
056
057
058
059 long companyId = PortalInstances.getCompanyId(request);
060
061 if (_log.isDebugEnabled()) {
062 _log.debug("Company id " + companyId);
063 }
064
065 PortalUtil.getCurrentCompleteURL(request);
066 PortalUtil.getCurrentURL(request);
067
068 HttpSession session = request.getSession();
069
070 Boolean httpsInitial = (Boolean)session.getAttribute(
071 WebKeys.HTTPS_INITIAL);
072
073 if (httpsInitial == null) {
074 httpsInitial = Boolean.valueOf(request.isSecure());
075
076 session.setAttribute(WebKeys.HTTPS_INITIAL, httpsInitial);
077
078 if (_log.isDebugEnabled()) {
079 _log.debug("Setting httpsInitial to " + httpsInitial);
080 }
081 }
082
083 ServiceContext serviceContext = ServiceContextFactory.getInstance(
084 request);
085
086 ServiceContextThreadLocal.pushServiceContext(serviceContext);
087
088 return null;
089 }
090
091 public HttpServletResponse getWrappedHttpServletResponse(
092 HttpServletRequest request, HttpServletResponse response) {
093
094 return new AbsoluteRedirectsResponse(request, response);
095 }
096
097 @Override
098 public boolean isFilterEnabled() {
099 return _FILTER_ENABLED;
100 }
101
102 private static final boolean _FILTER_ENABLED = true;
103
104 private static Log _log = LogFactoryUtil.getLog(
105 AbsoluteRedirectsFilter.class);
106
107 }