List of usage examples for com.liferay.portal.kernel.util ParamUtil get
public static String get(ServiceContext serviceContext, String param, String defaultValue)
From source file:blade.portlet.actioncommand.GreeterActionCommand.java
License:Apache License
private void _handleActionCommand(ActionRequest actionRequest, ActionResponse actionResponse) { String name = ParamUtil.get(actionRequest, "name", StringPool.BLANK); _log.info("Hello " + name); String greetingMessage = "Hello " + name + "! Welcome to OSGi"; actionRequest.setAttribute("GREETER_MESSAGE", greetingMessage); SessionMessages.add(actionRequest, "greeting_message", greetingMessage); }
From source file:com.evozon.evoportal.myaccount.builder.RequestAccountModelHolderBuilder.java
public AccountModelHolderBuilder buildDetailsModel() { DetailsModel detailsModel = new DetailsModel(); detailsModel.setScreenName(ParamUtil.get(request, "screenName", StringPool.BLANK)); detailsModel.setEmailAddress(ParamUtil.get(request, "emailAddress", StringPool.BLANK)); detailsModel.setFirstName(ParamUtil.get(request, "firstName", StringPool.BLANK)); detailsModel.setLastName(ParamUtil.get(request, "lastName", StringPool.BLANK)); detailsModel.setMale(ParamUtil.getBoolean(request, "male", Boolean.FALSE)); detailsModel.setBuilding(ParamUtil.get(request, "ExpandoAttribute--Building--", StringPool.BLANK)); detailsModel.setJobTitle(ParamUtil.get(request, "jobTitle", StringPool.BLANK)); detailsModel.setFunctieCIM(ParamUtil.get(request, "ExpandoAttribute--Functie CIM--", StringPool.BLANK)); detailsModel.setCnp(ParamUtil.get(request, "userCNP", StringPool.BLANK)); detailsModel.setLicensePlate(ParamUtil.get(request, "ExpandoAttribute--License Plate--", StringPool.BLANK)); detailsModel.setBirthdayDate(getDateFromRequest("birthday")); detailsModel.setBirthdayHidden(ParamUtil.getBoolean(request, "hideBirthday", Boolean.FALSE)); detailsModel.setSkype(ParamUtil.get(request, "skypeSn", StringPool.BLANK)); detailsModel.setPhoneNumber(ParamUtil.get(request, "phoneNumber", StringPool.BLANK)); detailsModel.setPhoneNumberHidden(ParamUtil.getBoolean(request, "hidePhones", Boolean.FALSE)); detailsModel.setMarried(ParamUtil.getBoolean(request, "ExpandoAttribute--Married--", Boolean.FALSE)); detailsModel.setStudent(ParamUtil.getBoolean(request, "isStudent", Boolean.FALSE)); detailsModel.setUniversity(ParamUtil.get(request, "ExpandoAttribute--University--", StringPool.BLANK)); detailsModel.setFaculty(ParamUtil.get(request, "ExpandoAttribute--Faculty--", StringPool.BLANK)); detailsModel.setDiplomaTitle(/*from w w w. ja v a 2 s . c om*/ ParamUtil.get(request, "ExpandoAttribute--Diploma title (In progress)--", StringPool.BLANK)); detailsModel.setAdditionalEmailAddress(ParamUtil.get(request, "additionalEmailAddress", StringPool.BLANK)); this.accountModelHolder.setDetailsModel(detailsModel); return this; }
From source file:com.evozon.evoportal.my_account.util.MyAccountRequestUtil.java
public static DetailsModel getDetailsModelFromRequest(ActionRequest actionRequest) { DetailsModel detailsModel = new DetailsModel(); detailsModel.setScreenName(ParamUtil.get(actionRequest, "screenName", StringPool.BLANK)); detailsModel.setEmailAddress(ParamUtil.get(actionRequest, "emailAddress", StringPool.BLANK)); detailsModel.setFirstName(ParamUtil.get(actionRequest, "firstName", StringPool.BLANK)); detailsModel.setLastName(ParamUtil.get(actionRequest, "lastName", StringPool.BLANK)); detailsModel.setMale(ParamUtil.getBoolean(actionRequest, "male", Boolean.FALSE)); detailsModel.setBuilding(ParamUtil.get(actionRequest, "ExpandoAttribute--Building--", StringPool.BLANK)); detailsModel.setJobTitle(ParamUtil.get(actionRequest, "jobTitle", StringPool.BLANK)); detailsModel//from w w w . j a v a 2 s . co m .setFunctieCIM(ParamUtil.get(actionRequest, "ExpandoAttribute--Functie CIM--", StringPool.BLANK)); detailsModel.setCnp(ParamUtil.get(actionRequest, "userCNP", StringPool.BLANK)); detailsModel.setLicensePlate( ParamUtil.get(actionRequest, "ExpandoAttribute--License Plate--", StringPool.BLANK)); detailsModel.setBirthdayDate(getBirthdayFromRequest(actionRequest)); detailsModel.setBirthdayHidden(ParamUtil.getBoolean(actionRequest, "hideBirthday", Boolean.FALSE)); detailsModel.setSkype(ParamUtil.get(actionRequest, "skypeSn", StringPool.BLANK)); detailsModel.setPhoneNumber(ParamUtil.get(actionRequest, "phoneNumber", StringPool.BLANK)); detailsModel.setPhoneNumberHidden(ParamUtil.getBoolean(actionRequest, "hidePhones", Boolean.FALSE)); detailsModel.setMarried(ParamUtil.getBoolean(actionRequest, "ExpandoAttribute--Married--", Boolean.FALSE)); detailsModel.setStudent(ParamUtil.getBoolean(actionRequest, "isStudent", Boolean.FALSE)); detailsModel .setUniversity(ParamUtil.get(actionRequest, "ExpandoAttribute--University--", StringPool.BLANK)); detailsModel.setFaculty(ParamUtil.get(actionRequest, "ExpandoAttribute--Faculty--", StringPool.BLANK)); detailsModel.setDiplomaTitle( ParamUtil.get(actionRequest, "ExpandoAttribute--Diploma title (In progress)--", StringPool.BLANK)); detailsModel.setAdditionalEmailAddress( ParamUtil.get(actionRequest, "additionalEmailAddress", StringPool.BLANK)); detailsModel.setOfficialName(ParamUtil.getString(actionRequest, MyAccountConstants.EXPANDO_OFFICIAL_NAME_ATTRIBUTE, StringPool.BLANK)); return detailsModel; }
From source file:com.liferay.blade.samples.portlet.actioncommand.GreeterActionCommand.java
License:Apache License
private void _handleActionCommand(ActionRequest actionRequest) { String name = ParamUtil.get(actionRequest, "name", StringPool.BLANK); if (_log.isInfoEnabled()) { _log.info("Hello " + name); }//from ww w . ja v a 2s . co m String greetingMessage = "Hello " + name + "! Welcome to OSGi"; actionRequest.setAttribute("GREETER_MESSAGE", greetingMessage); SessionMessages.add(actionRequest, "greetingMessage", greetingMessage); }
From source file:com.liferay.journal.web.internal.portlet.action.ActionUtil.java
License:Open Source License
protected static String getLanguageId(RenderRequest renderRequest, long groupId, String articleId, double sourceVersion, double targetVersion) throws Exception { JournalArticle sourceArticle = JournalArticleLocalServiceUtil.fetchArticle(groupId, articleId, sourceVersion);//from w w w. j a v a 2 s .c om JournalArticle targetArticle = JournalArticleLocalServiceUtil.fetchArticle(groupId, articleId, targetVersion); Set<Locale> locales = new HashSet<>(); for (String locale : sourceArticle.getAvailableLanguageIds()) { locales.add(LocaleUtil.fromLanguageId(locale)); } for (String locale : targetArticle.getAvailableLanguageIds()) { locales.add(LocaleUtil.fromLanguageId(locale)); } String languageId = ParamUtil.get(renderRequest, "languageId", targetArticle.getDefaultLanguageId()); Locale locale = LocaleUtil.fromLanguageId(languageId); if (!locales.contains(locale)) { languageId = targetArticle.getDefaultLanguageId(); } renderRequest.setAttribute(WebKeys.AVAILABLE_LOCALES, locales); renderRequest.setAttribute(WebKeys.LANGUAGE_ID, languageId); return languageId; }
From source file:com.liferay.lms.servlet.SCORMFileServerServlet.java
License:Open Source License
/** * Procesa los metodos HTTP GET y POST.<br> * Busca en la ruta que se le ha pedido el comienzo del directorio * "contenidos" y sirve el fichero.//from w w w . ja v a2 s. co m */ protected void processRequest(HttpServletRequest request, HttpServletResponse response, boolean content) throws ServletException, java.io.IOException { String mime_type; String charset; String patharchivo; String uri; try { User user = PortalUtil.getUser(request); if (user == null) { String userId = null; String companyId = null; Cookie[] cookies = ((HttpServletRequest) request).getCookies(); if (Validator.isNotNull(cookies)) { for (Cookie c : cookies) { if ("COMPANY_ID".equals(c.getName())) { companyId = c.getValue(); } else if ("ID".equals(c.getName())) { userId = hexStringToStringByAscii(c.getValue()); } } } if (userId != null && companyId != null) { try { Company company = CompanyLocalServiceUtil.getCompany(Long.parseLong(companyId)); Key key = company.getKeyObj(); String userIdPlain = Encryptor.decrypt(key, userId); user = UserLocalServiceUtil.getUser(Long.valueOf(userIdPlain)); // Now you can set the liferayUser into a thread local // for later use or // something like that. } catch (Exception pException) { throw new RuntimeException(pException); } } } String rutaDatos = SCORMContentLocalServiceUtil.getBaseDir(); // Se comprueba que el usuario tiene permisos para acceder. // Damos acceso a todo el mundo al directorio "personalizacion", // para permitir mostrar a todos la pantalla de identificacion. uri = URLDecoder.decode(request.getRequestURI(), "UTF-8"); uri = uri.substring(uri.indexOf("scorm/") + "scorm/".length()); patharchivo = rutaDatos + "/" + uri; String[] params = uri.split("/"); long groupId = GetterUtil.getLong(params[1]); String uuid = params[2]; SCORMContent scormContent = SCORMContentLocalServiceUtil.getSCORMContentByUuidAndGroupId(uuid, groupId); boolean allowed = false; if (user == null) { user = UserLocalServiceUtil.getDefaultUser(PortalUtil.getDefaultCompanyId()); } PermissionChecker pc = PermissionCheckerFactoryUtil.create(user); allowed = pc.hasPermission(groupId, SCORMContent.class.getName(), scormContent.getScormId(), ActionKeys.VIEW); if (!allowed) { AssetEntry scormAsset = AssetEntryLocalServiceUtil.getEntry(SCORMContent.class.getName(), scormContent.getPrimaryKey()); long scormAssetId = scormAsset.getEntryId(); int typeId = new Long((new SCORMLearningActivityType()).getTypeId()).intValue(); long[] groupIds = user.getGroupIds(); for (long gId : groupIds) { List<LearningActivity> acts = LearningActivityLocalServiceUtil .getLearningActivitiesOfGroupAndType(gId, typeId); for (LearningActivity act : acts) { String entryId = LearningActivityLocalServiceUtil.getExtraContentValue(act.getActId(), "assetEntry"); if (Validator.isNotNull(entryId) && Long.valueOf(entryId) == scormAssetId) { allowed = pc.hasPermission(gId, LearningActivity.class.getName(), act.getActId(), ActionKeys.VIEW); if (allowed) { break; } } } if (allowed) { break; } } } if (allowed) { File archivo = new File(patharchivo); // Si el archivo existe y no es un directorio se sirve. Si no, // no se hace nada. if (archivo.exists() && archivo.isFile()) { // El content type siempre antes del printwriter mime_type = MimeTypesUtil.getContentType(archivo); charset = ""; if (archivo.getName().toLowerCase().endsWith(".html") || archivo.getName().toLowerCase().endsWith(".htm")) { mime_type = "text/html"; if (isISO(FileUtils.readFileToString(archivo))) { charset = "ISO-8859-1"; } } if (archivo.getName().toLowerCase().endsWith(".swf")) { mime_type = "application/x-shockwave-flash"; } if (archivo.getName().toLowerCase().endsWith(".mp4")) { mime_type = "video/mp4"; } if (archivo.getName().toLowerCase().endsWith(".flv")) { mime_type = "video/x-flv"; } response.setContentType(mime_type); if (Validator.isNotNull(charset)) { response.setCharacterEncoding(charset); } response.addHeader("Content-Type", mime_type + (Validator.isNotNull(charset) ? "; " + charset : "")); /*if (archivo.getName().toLowerCase().endsWith(".swf") || archivo.getName().toLowerCase().endsWith(".flv")) { response.addHeader("Content-Length", String.valueOf(archivo.length())); } */ if (archivo.getName().toLowerCase().endsWith("imsmanifest.xml")) { FileInputStream fis = new FileInputStream(patharchivo); String sco = ParamUtil.get(request, "scoshow", ""); Document manifest = SAXReaderUtil.read(fis); if (sco.length() > 0) { Element organizatEl = manifest.getRootElement().element("organizations") .element("organization"); Element selectedItem = selectItem(organizatEl, sco); if (selectedItem != null) { selectedItem.detach(); java.util.List<Element> items = organizatEl.elements("item"); for (Element item : items) { organizatEl.remove(item); } organizatEl.add(selectedItem); } } //clean unused resources. Element resources = manifest.getRootElement().element("resources"); java.util.List<Element> theResources = resources.elements("resource"); Element organizatEl = manifest.getRootElement().element("organizations") .element("organization"); java.util.List<String> identifiers = getIdentifierRefs(organizatEl); for (Element resource : theResources) { String identifier = resource.attributeValue("identifier"); if (!identifiers.contains(identifier)) { resources.remove(resource); } } response.getWriter().print(manifest.asXML()); fis.close(); return; } if (mime_type.startsWith("text") || mime_type.endsWith("javascript") || mime_type.equals("application/xml")) { java.io.OutputStream out = response.getOutputStream(); FileInputStream fis = new FileInputStream(patharchivo); byte[] buffer = new byte[512]; int i = 0; while (fis.available() > 0) { i = fis.read(buffer); if (i == 512) out.write(buffer); else out.write(buffer, 0, i); } fis.close(); out.flush(); out.close(); return; } //If not manifest String fileName = archivo.getName(); long length = archivo.length(); long lastModified = archivo.lastModified(); String eTag = fileName + "_" + length + "_" + lastModified; long expires = System.currentTimeMillis() + DEFAULT_EXPIRE_TIME; String ifNoneMatch = request.getHeader("If-None-Match"); if (ifNoneMatch != null && matches(ifNoneMatch, eTag)) { response.setStatus(HttpServletResponse.SC_NOT_MODIFIED); response.setHeader("ETag", eTag); // Required in 304. response.setDateHeader("Expires", expires); // Postpone cache with 1 week. return; } long ifModifiedSince = request.getDateHeader("If-Modified-Since"); if (ifNoneMatch == null && ifModifiedSince != -1 && ifModifiedSince + 1000 > lastModified) { response.setStatus(HttpServletResponse.SC_NOT_MODIFIED); response.setHeader("ETag", eTag); // Required in 304. response.setDateHeader("Expires", expires); // Postpone cache with 1 week. return; } // If-Match header should contain "*" or ETag. If not, then return 412. String ifMatch = request.getHeader("If-Match"); if (ifMatch != null && !matches(ifMatch, eTag)) { response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED); return; } // If-Unmodified-Since header should be greater than LastModified. If not, then return 412. long ifUnmodifiedSince = request.getDateHeader("If-Unmodified-Since"); if (ifUnmodifiedSince != -1 && ifUnmodifiedSince + 1000 <= lastModified) { response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED); return; } // Validate and process range ------------------------------------------------------------- // Prepare some variables. The full Range represents the complete file. Range full = new Range(0, length - 1, length); List<Range> ranges = new ArrayList<Range>(); // Validate and process Range and If-Range headers. String range = request.getHeader("Range"); if (range != null) { // Range header should match format "bytes=n-n,n-n,n-n...". If not, then return 416. if (!range.matches("^bytes=\\d*-\\d*(,\\d*-\\d*)*$")) { response.setHeader("Content-Range", "bytes */" + length); // Required in 416. response.sendError(HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE); return; } // If-Range header should either match ETag or be greater then LastModified. If not, // then return full file. String ifRange = request.getHeader("If-Range"); if (ifRange != null && !ifRange.equals(eTag)) { try { long ifRangeTime = request.getDateHeader("If-Range"); // Throws IAE if invalid. if (ifRangeTime != -1 && ifRangeTime + 1000 < lastModified) { ranges.add(full); } } catch (IllegalArgumentException ignore) { ranges.add(full); } } // If any valid If-Range header, then process each part of byte range. if (ranges.isEmpty()) { for (String part : range.substring(6).split(",")) { // Assuming a file with length of 100, the following examples returns bytes at: // 50-80 (50 to 80), 40- (40 to length=100), -20 (length-20=80 to length=100). long start = sublong(part, 0, part.indexOf("-")); long end = sublong(part, part.indexOf("-") + 1, part.length()); if (start == -1) { start = length - end; end = length - 1; } else if (end == -1 || end > length - 1) { end = length - 1; } // Check if Range is syntactically valid. If not, then return 416. if (start > end) { response.setHeader("Content-Range", "bytes */" + length); // Required in 416. response.sendError(HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE); return; } // Add range. ranges.add(new Range(start, end, length)); } } } boolean acceptsGzip = false; String disposition = "inline"; if (mime_type.startsWith("text")) { //String acceptEncoding = request.getHeader("Accept-Encoding"); // acceptsGzip = acceptEncoding != null && accepts(acceptEncoding, "gzip"); // mime_type += ";charset=UTF-8"; } // Else, expect for images, determine content disposition. If content type is supported by // the browser, then set to inline, else attachment which will pop a 'save as' dialogue. else if (!mime_type.startsWith("image")) { String accept = request.getHeader("Accept"); disposition = accept != null && accepts(accept, mime_type) ? "inline" : "attachment"; } // Initialize response. response.reset(); response.setBufferSize(DEFAULT_BUFFER_SIZE); response.setHeader("Content-Disposition", disposition + ";filename=\"" + fileName + "\""); response.setHeader("Accept-Ranges", "bytes"); response.setHeader("ETag", eTag); response.setDateHeader("Last-Modified", lastModified); response.setDateHeader("Expires", expires); // Send requested file (part(s)) to client ------------------------------------------------ // Prepare streams. RandomAccessFile input = null; OutputStream output = null; try { // Open streams. input = new RandomAccessFile(archivo, "r"); output = response.getOutputStream(); if (ranges.isEmpty() || ranges.get(0) == full) { // Return full file. Range r = full; response.setContentType(mime_type); response.setHeader("Content-Range", "bytes " + r.start + "-" + r.end + "/" + r.total); if (content) { // Content length is not directly predictable in case of GZIP. // So only add it if there is no means of GZIP, else browser will hang. response.setHeader("Content-Length", String.valueOf(r.length)); // Copy full range. copy(input, output, r.start, r.length); } } else if (ranges.size() == 1) { // Return single part of file. Range r = ranges.get(0); response.setContentType(mime_type); response.setHeader("Content-Range", "bytes " + r.start + "-" + r.end + "/" + r.total); response.setHeader("Content-Length", String.valueOf(r.length)); response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT); // 206. if (content) { // Copy single part range. copy(input, output, r.start, r.length); } } else { // Return multiple parts of file. response.setContentType("multipart/byteranges; boundary=" + MULTIPART_BOUNDARY); response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT); // 206. if (content) { // Cast back to ServletOutputStream to get the easy println methods. ServletOutputStream sos = (ServletOutputStream) output; // Copy multi part range. for (Range r : ranges) { // Add multipart boundary and header fields for every range. sos.println(); sos.println("--" + MULTIPART_BOUNDARY); sos.println("Content-Type: " + mime_type); sos.println("Content-Range: bytes " + r.start + "-" + r.end + "/" + r.total); // Copy single part range of multi part range. copy(input, output, r.start, r.length); } // End with multipart boundary. sos.println(); sos.println("--" + MULTIPART_BOUNDARY + "--"); } } } finally { // Gently close streams. close(output); close(input); } } else { //java.io.OutputStream out = response.getOutputStream(); response.sendError(404); //out.write(uri.getBytes()); } } else { response.sendError(401); } } catch (Exception e) { System.out.println("Error en el processRequest() de ServidorArchivos: " + e.getMessage()); } }
From source file:com.liferay.opensocial.adhocgadget.action.ConfigurationActionImpl.java
License:Open Source License
@Override public void processAction(PortletConfig portletConfig, ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { String tabs2 = ParamUtil.get(actionRequest, "tabs2", "gadget"); if (tabs2.equals("manage-oauth")) { ShindigUtil.updateOAuthConsumers(actionRequest, actionResponse); String portletResource = ParamUtil.getString(actionRequest, "portletResource"); SessionMessages.add(actionRequest, PortalUtil.getPortletId(actionRequest) + SessionMessages.KEY_SUFFIX_REFRESH_PORTLET, portletResource);/* www . j av a2 s . c o m*/ SessionMessages.add(actionRequest, PortalUtil.getPortletId(actionRequest) + SessionMessages.KEY_SUFFIX_UPDATED_CONFIGURATION); } else if (tabs2.equals("preferences")) { doProcessAction(portletConfig, actionRequest, actionResponse); } else { String url = getParameter(actionRequest, "url"); try { ShindigUtil.getGadgetSpec(url, false, true); } catch (Exception e) { SessionErrors.add(actionRequest, e.getClass()); } setPreference(actionRequest, "url", url); super.processAction(portletConfig, actionRequest, actionResponse); } }
From source file:com.liferay.so.configurations.portlet.ConfigurationsPortlet.java
License:Open Source License
public void updateGeneralConfigurations(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); boolean addSitePermission = ParamUtil.get(actionRequest, "addSitePermission", true); updateRolePermissions(themeDisplay.getCompanyId(), addSitePermission); UnicodeProperties properties = PropertiesParamUtil.getProperties(actionRequest, "preferences--"); PortletPreferences portletPreferences = PortletPreferencesLocalServiceUtil.getPreferences( themeDisplay.getCompanyId(), themeDisplay.getCompanyId(), PortletKeys.PREFS_OWNER_TYPE_COMPANY, LayoutConstants.DEFAULT_PLID, PortletKeys.SO_CONFIGURATIONS); for (Map.Entry<String, String> entry : properties.entrySet()) { portletPreferences.setValue(entry.getKey(), entry.getValue()); }/* ww w. j a v a2s . c o m*/ try { portletPreferences.store(); } catch (ValidatorException ve) { SessionErrors.add(actionRequest, ValidatorException.class.getName(), ve); } }
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;/*www. ja v a 2s . c om*/ 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.internal.servlet.SyncDownloadServlet.java
License:Open Source License
@Override public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { try {/*w w w.j a v a 2 s . c o m*/ HttpSession session = request.getSession(); if (PortalSessionThreadLocal.getHttpSession() == null) { PortalSessionThreadLocal.setHttpSession(session); } User user = _portal.getUser(request); String syncUuid = request.getHeader("Sync-UUID"); if (syncUuid != null) { SyncDevice syncDevice = SyncDeviceLocalServiceUtil.fetchSyncDeviceByUuidAndCompanyId(syncUuid, user.getCompanyId()); if (syncDevice != null) { syncDevice.checkStatus(); } } PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user); PermissionThreadLocal.setPermissionChecker(permissionChecker); String path = _http.fixPath(request.getPathInfo()); String[] pathArray = StringUtil.split(path, CharPool.SLASH); if (pathArray[0].equals("image")) { long imageId = GetterUtil.getLong(pathArray[1]); sendImage(request, response, imageId); } else if (pathArray[0].equals("zip")) { String zipFileIds = ParamUtil.get(request, "zipFileIds", StringPool.BLANK); if (Validator.isNull(zipFileIds)) { throw new IllegalArgumentException("Missing parameter zipFileIds"); } JSONArray zipFileIdsJSONArray = JSONFactoryUtil.createJSONArray(zipFileIds); sendZipFile(response, user.getUserId(), zipFileIdsJSONArray); } else if (pathArray[0].equals("zipfolder")) { long repositoryId = ParamUtil.getLong(request, "repositoryId"); long folderId = ParamUtil.getLong(request, "folderId"); if (repositoryId == 0) { throw new IllegalArgumentException("Missing parameter repositoryId"); } else if (folderId == 0) { throw new IllegalArgumentException("Missing parameter folderId"); } sendZipFolder(response, user.getUserId(), repositoryId, folderId); } else { long groupId = GetterUtil.getLong(pathArray[0]); String fileUuid = pathArray[1]; Group group = _groupLocalService.fetchGroup(groupId); if ((group == null) || !_syncUtil.isSyncEnabled(group)) { response.setHeader(_ERROR_HEADER, SyncSiteUnavailableException.class.getName()); ServletResponseUtil.write(response, new byte[0]); return; } boolean patch = ParamUtil.getBoolean(request, "patch"); if (patch) { sendPatch(request, response, user.getUserId(), groupId, fileUuid); } else { sendFile(request, response, user.getUserId(), groupId, fileUuid); } } } catch (NoSuchFileEntryException nsfee) { _portal.sendError(HttpServletResponse.SC_NOT_FOUND, nsfee, request, response); } catch (NoSuchFileVersionException nsfve) { _portal.sendError(HttpServletResponse.SC_NOT_FOUND, nsfve, request, response); } catch (Exception e) { _portal.sendError(e, request, response); } }