List of usage examples for com.liferay.portal.kernel.util WebKeys INVOKER_FILTER_URI
String INVOKER_FILTER_URI
To view the source code for com.liferay.portal.kernel.util WebKeys INVOKER_FILTER_URI.
Click Source Link
From source file:com.liferay.documentlibrary.hook.filter.DLRecordFilter.java
License:Open Source License
@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { boolean isLogsEnabled = GetterUtil.getBoolean(PropsUtil.get("document.download.logs.enabled"), Boolean.FALSE);/*from ww w.j av a 2 s .c o m*/ if (isLogsEnabled) { try { HttpServletRequest httpRequest = PortalUtil .getOriginalServletRequest((HttpServletRequest) servletRequest); String uri = (String) servletRequest.getAttribute(WebKeys.INVOKER_FILTER_URI); /** * In WebServerServlet(Parent servlet) it returns path like /1024/123/Document+Name/uuid * While in this filter URI is like /document/1024/123/Document+Name/uuid. So to use OOB methods * I have replaced intial /document/ with blank. */ uri = StringUtil.replaceFirst(uri, "/documents/", StringPool.BLANK); String[] pathArray = StringUtil.split(uri, CharPool.SLASH); if (Validator.isNumber(pathArray[0])) { User user = _getUser(httpRequest); PrincipalThreadLocal.setName(user.getUserId()); PrincipalThreadLocal.setPassword(PortalUtil.getUserPassword(httpRequest)); PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user); PermissionThreadLocal.setPermissionChecker(permissionChecker); FileEntry fileEntry = getFileEntry(pathArray); String remoteIpAddress = httpRequest.getRemoteAddr(); addDLRecordLog(fileEntry, user, remoteIpAddress); } //System.out.println("URI " + uri); } catch (Exception e) { LOGGER.error(e.getMessage(), e); } } filterChain.doFilter(servletRequest, servletResponse); }
From source file:com.liferay.httpservice.internal.servlet.BundleServletRequest.java
License:Open Source License
@Override public Object getAttribute(String name) { if ((name.equals(JavaConstants.JAVAX_SERVLET_FORWARD_SERVLET_PATH) || name.equals(WebKeys.INVOKER_FILTER_URI)) && _attributes.containsKey(WebKeys.SERVLET_PATH)) { return _attributes.get(WebKeys.SERVLET_PATH); }//www . j av a 2 s . c o m if (_maskedAttributes.contains(name)) { return _attributes.get(name); } return super.getAttribute(name); }
From source file:com.liferay.sampleservletfilter.hook.filter.SampleFilter.java
License:Open Source License
@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { String uri = (String) servletRequest.getAttribute(WebKeys.INVOKER_FILTER_URI); System.out.println("Called SampleFilter.doFilter(" + servletRequest + ", " + servletResponse + ", " + filterChain + ") for URI " + uri); filterChain.doFilter(servletRequest, servletResponse); }
From source file:com.liferay.sync.filter.SyncJSONFilter.java
License:Open Source License
@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { String uri = (String) servletRequest.getAttribute(WebKeys.INVOKER_FILTER_URI); if (!uri.startsWith("/api/jsonws/sync-web.")) { filterChain.doFilter(servletRequest, servletResponse); return;//from w w w . jav a 2 s.c o m } HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; if (PrefsPropsUtil.getBoolean(PortalUtil.getCompanyId(httpServletRequest), PortletPropsKeys.SYNC_SERVICES_ENABLED, PortletPropsValues.SYNC_SERVICES_ENABLED)) { filterChain.doFilter(servletRequest, servletResponse); return; } servletResponse.setCharacterEncoding(StringPool.UTF8); servletResponse.setContentType(ContentTypes.APPLICATION_JSON); OutputStream outputStream = servletResponse.getOutputStream(); String json = SyncUtil.buildExceptionMessage(new SyncServicesUnavailableException()); json = "{\"exception\": \"" + json + "\"}"; outputStream.write(json.getBytes(StringPool.UTF8)); outputStream.close(); }
From source file:com.liferay.sync.internal.servlet.filter.SyncJSONFilter.java
License:Open Source License
@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { SyncDevice syncDevice = null;/*from w ww . jav a 2s .c o m*/ HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; String uuid = httpServletRequest.getHeader("Sync-UUID"); if (uuid != null) { syncDevice = SyncDeviceLocalServiceUtil.fetchSyncDeviceByUuidAndCompanyId(uuid, _portal.getCompanyId(httpServletRequest)); } if (syncDevice == null) { syncDevice = SyncDeviceLocalServiceUtil.createSyncDevice(0); } syncDevice.setHostname(servletRequest.getRemoteHost()); SyncDeviceThreadLocal.setSyncDevice(syncDevice); if (uuid != null) { filterChain.doFilter(servletRequest, servletResponse); return; } String uri = (String) servletRequest.getAttribute(WebKeys.INVOKER_FILTER_URI); if (uri.equals("/api/jsonws/invoke")) { String contentType = httpServletRequest.getHeader(HttpHeaders.CONTENT_TYPE); if ((contentType == null) || !contentType.startsWith(ContentTypes.MULTIPART_FORM_DATA)) { filterChain.doFilter(servletRequest, servletResponse); return; } if (!(httpServletRequest instanceof UploadServletRequest)) { servletRequest = _portal.getUploadServletRequest(httpServletRequest); } if (!isSyncJSONRequest(servletRequest)) { filterChain.doFilter(servletRequest, servletResponse); return; } } else if (!uri.startsWith("/api/jsonws/sync")) { filterChain.doFilter(servletRequest, servletResponse); return; } if (ParamUtil.get(httpServletRequest, "debug", false)) { filterChain.doFilter(servletRequest, servletResponse); return; } Throwable throwable = null; if (PrefsPropsUtil.getBoolean(_portal.getCompanyId(httpServletRequest), SyncServiceConfigurationKeys.SYNC_SERVICES_ENABLED, SyncServiceConfigurationValues.SYNC_SERVICES_ENABLED)) { int absoluteSyncClientMinBuild = 0; int syncClientMinBuild = 0; String syncDeviceType = httpServletRequest.getHeader("Sync-Device"); if (syncDeviceType == null) { throwable = new SyncDeviceHeaderException(); } else if (syncDeviceType.startsWith("desktop")) { absoluteSyncClientMinBuild = _ABSOLUTE_SYNC_CLIENT_MIN_BUILD_DESKTOP; syncClientMinBuild = PrefsPropsUtil.getInteger(_portal.getCompanyId(httpServletRequest), SyncServiceConfigurationKeys.SYNC_CLIENT_MIN_BUILD_DESKTOP, SyncServiceConfigurationValues.SYNC_CLIENT_MIN_BUILD_DESKTOP); } else if (syncDeviceType.equals("mobile-android")) { absoluteSyncClientMinBuild = _ABSOLUTE_SYNC_CLIENT_MIN_BUILD_ANDROID; syncClientMinBuild = PrefsPropsUtil.getInteger(_portal.getCompanyId(httpServletRequest), SyncServiceConfigurationKeys.SYNC_CLIENT_MIN_BUILD_ANDROID, SyncServiceConfigurationValues.SYNC_CLIENT_MIN_BUILD_ANDROID); } else if (syncDeviceType.equals("mobile-ios")) { absoluteSyncClientMinBuild = _ABSOLUTE_SYNC_CLIENT_MIN_BUILD_IOS; syncClientMinBuild = PrefsPropsUtil.getInteger(_portal.getCompanyId(httpServletRequest), SyncServiceConfigurationKeys.SYNC_CLIENT_MIN_BUILD_IOS, SyncServiceConfigurationValues.SYNC_CLIENT_MIN_BUILD_IOS); } else { throwable = new SyncDeviceHeaderException(); } if (throwable == null) { if (syncClientMinBuild < absoluteSyncClientMinBuild) { syncClientMinBuild = absoluteSyncClientMinBuild; } int syncBuild = httpServletRequest.getIntHeader("Sync-Build"); if (syncBuild >= syncClientMinBuild) { filterChain.doFilter(servletRequest, servletResponse); return; } else { throwable = new SyncClientMinBuildException( "Sync client does not meet minimum build " + syncClientMinBuild); } } } else { throwable = new SyncServicesUnavailableException(); } servletResponse.setCharacterEncoding(StringPool.UTF8); servletResponse.setContentType(ContentTypes.APPLICATION_JSON); OutputStream outputStream = servletResponse.getOutputStream(); String json = _syncUtil.buildExceptionMessage(throwable); json = "{\"exception\": \"" + json + "\"}"; outputStream.write(json.getBytes(StringPool.UTF8)); outputStream.close(); }
From source file:com.liferay.sync.security.auth.verifier.SyncAuthVerifier.java
License:Open Source License
@Override public AuthVerifierResult verify(AccessControlContext accessControlContext, Properties properties) throws AuthException { AuthVerifierResult authVerifierResult = new AuthVerifierResult(); HttpServletRequest request = accessControlContext.getRequest(); String uri = (String) request.getAttribute(WebKeys.INVOKER_FILTER_URI); if (uri.startsWith("/download/")) { String contextPath = request.getContextPath(); if (!contextPath.equals("/o/sync")) { return authVerifierResult; }//from w ww .ja v a 2 s . c o m } String token = request.getHeader(_TOKEN_HEADER); if (Validator.isNotNull(token)) { String userIdString = getUserId(token); if (userIdString != null) { authVerifierResult.setState(AuthVerifierResult.State.SUCCESS); authVerifierResult.setUserId(Long.valueOf(userIdString)); return authVerifierResult; } } HttpAuthorizationHeader httpAuthorizationHeader = HttpAuthManagerUtil.parse(request); if (httpAuthorizationHeader == null) { // SYNC-1463 Map<String, Object> settings = accessControlContext.getSettings(); settings.remove("basic_auth"); return authVerifierResult; } String scheme = httpAuthorizationHeader.getScheme(); if (!StringUtil.equalsIgnoreCase(scheme, HttpAuthorizationHeader.SCHEME_BASIC)) { return authVerifierResult; } try { long userId = HttpAuthManagerUtil.getBasicUserId(request); if (userId > 0) { token = createToken(userId); if (token != null) { HttpServletResponse response = accessControlContext.getResponse(); response.addHeader(_TOKEN_HEADER, token); } } else { userId = _userLocalService.getDefaultUserId(_portal.getCompanyId(request)); } authVerifierResult.setState(AuthVerifierResult.State.SUCCESS); authVerifierResult.setUserId(userId); return authVerifierResult; } catch (Exception e) { throw new AuthException(e); } }