List of usage examples for com.liferay.portal.util PrefsPropsUtil getStringArray
public static String[] getStringArray(String name, String delimiter, String[] defaultValue)
From source file:com.liferay.portlet.login.action.STORKAction.java
License:Apache License
@Override public void processAction(ActionMapping mapping, ActionForm form, PortletConfig portletConfig, ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); long companyId = themeDisplay.getCompanyId(); if (!STORKUtil.isEnabled(companyId)) { throw new PrincipalException(); }/*from w ww .j a v a 2s . c om*/ String storkMandatoryAttr = PrefsPropsUtil.getString(companyId, FedPropsKeys.STORK_AUTH_LOCAL_SEARCH_FILTER, FedPropsValues.STORK_AUTH_LOCAL_SEARCH_FILTER); Map<String, String> storkUserMapping = getAttrMap( PrefsPropsUtil.getString(companyId, FedPropsKeys.STORK_USER_MAPPING)); if (ParamUtil.getString(actionRequest, "StorkAction", "none").equals("login")) { byte[] decSamlToken = PEPSUtil.decodeSAMLToken(ParamUtil.getString(actionRequest, "SAMLResponse")); STORKSAMLEngine storkEngine = STORKSAMLEngine.getInstance("SP"); STORKAuthnResponse authnResponse = null; try { authnResponse = storkEngine.validateSTORKAuthnResponse(decSamlToken, PortalUtil.getHttpServletRequest(actionRequest).getRemoteHost()); } catch (Exception ex) { _log.error("Could not validate token for Saml Response"); _log.error(ex); setForward(actionRequest, "portlet.login.stork.error"); return; } _log.debug("Authentication response status: " + authnResponse.getStatusCode() + "(reason: " + authnResponse.getSubStatusCode() + ") and this is a fail: " + authnResponse.isFail()); if (!authnResponse.isFail()) { Map<String, PersonalAttribute> mPersAttr = createPersonalAttributeMap( authnResponse.getPersonalAttributeList().values()); User user = null; if (storkMandatoryAttr.equals("screenName")) { _log.debug("Finding user using the " + storkUserMapping.get("screenName")); if (mPersAttr.containsKey(storkUserMapping.get("screenName"))) { Iterator<String> pa = mPersAttr.get(storkUserMapping.get("screenName")).getValue() .iterator(); while (pa.hasNext() && user == null) { String screenName = pa.next(); try { user = UserLocalServiceUtil.getUserByScreenName(companyId, screenName); } catch (NoSuchUserException nse) { _log.info("User screenName: " + screenName + " is not registered"); } } } else { actionResponse.sendRedirect( PrefsPropsUtil.getString(companyId, FedPropsKeys.STORK_AUTH_PAGE_MISS_ATTRIBUTE, FedPropsValues.STORK_AUTH_PAGE_MISS_ATTRIBUTE)); _log.info("Stork authentication miss the matching attribute. Impossible to identify users"); return; } } if (storkMandatoryAttr.equals("uuid")) { _log.debug("Finding user using the " + storkUserMapping.get("uuid")); if (mPersAttr.containsKey(storkUserMapping.get("uuid"))) { Iterator<String> pa = mPersAttr.get(storkUserMapping.get("uuid")).getValue().iterator(); while (pa.hasNext() && user == null) { String uuid = pa.next(); try { user = UserLocalServiceUtil.getUserByUuid(uuid); } catch (NoSuchUserException nse) { _log.info("User uuid: " + uuid + " is not registered"); } } } else { actionResponse.sendRedirect( PrefsPropsUtil.getString(companyId, FedPropsKeys.STORK_AUTH_PAGE_MISS_ATTRIBUTE, FedPropsValues.STORK_AUTH_PAGE_MISS_ATTRIBUTE)); _log.info("Stork authentication miss the matching attribute. Impossible to identify users"); return; } } if (storkMandatoryAttr.equals("emailAddress")) { _log.debug("Finding user using the " + storkUserMapping.get("emailAddress")); if (mPersAttr.containsKey(storkUserMapping.get("emailAddress"))) { Iterator<String> pa = mPersAttr.get(storkUserMapping.get("emailAddress")).getValue() .iterator(); while (pa.hasNext() && user == null) { Pattern pat = Pattern.compile("[\\w\\-]([\\.\\w\\-])+@([\\w\\-]+\\.)+[a-zA-Z]{2,4}"); Matcher mailMatch; mailMatch = pat.matcher(pa.next()); while (mailMatch.find() && user == null) { if (Validator.isNotNull(mailMatch.group())) { try { user = UserLocalServiceUtil.getUserByEmailAddress(companyId, mailMatch.group()); } catch (NoSuchUserException nse) { _log.info("Mail: " + mailMatch.group() + " is not registered"); } } } } } else { actionResponse.sendRedirect( PrefsPropsUtil.getString(companyId, FedPropsKeys.STORK_AUTH_PAGE_MISS_ATTRIBUTE, FedPropsValues.STORK_AUTH_PAGE_MISS_ATTRIBUTE)); _log.info("Stork authentication miss the matching attribute. Impossible to identify users"); return; } } if (user == null && PrefsPropsUtil.getBoolean(companyId, FedPropsKeys.STORK_AUTH_LDLAP_CHECK, FedPropsValues.STORK_AUTH_LDLAP_CHECK)) { _log.debug("User not found, check on LDAP"); // user=getUserFromLdap(); String originalLdapFilter = PrefsPropsUtil.getString(themeDisplay.getCompanyId(), FedPropsKeys.STORK_AUTH_LDAP_SEARCH_FILTER, FedPropsValues.STORK_AUTH_LDAP_SEARCH_FILTER); List<String> lstLdapFilter = null; try { lstLdapFilter = generateFilters(companyId, mPersAttr.get(storkUserMapping.get("screenName")), mPersAttr.get(storkUserMapping.get("emailAddress")), mPersAttr.get(storkUserMapping.get("firstName")), mPersAttr.get(storkUserMapping.get("lastName")), originalLdapFilter); } catch (STORKException se) { _log.error(se.getMessage()); actionResponse.sendRedirect( PrefsPropsUtil.getString(companyId, FedPropsKeys.STORK_AUTH_PAGE_MISS_ATTRIBUTE, FedPropsValues.STORK_AUTH_PAGE_MISS_ATTRIBUTE)); return; } String[] idLDAPS = PrefsPropsUtil.getStringArray(companyId, "ldap.server.ids", ","); String idLDAP; int idLDAPCounter = 0; while (user == null && idLDAPCounter < idLDAPS.length) { idLDAP = idLDAPS[idLDAPCounter++]; String mailMap = null; String userMaps[] = PrefsPropsUtil .getString(companyId, PropsKeys.LDAP_USER_MAPPINGS + "." + idLDAP).split("\n"); int mIndex = 0; while (mailMap == null && mIndex < userMaps.length) { String map = userMaps[mIndex++]; if (map.indexOf("=") == -1 || map.split("=").length != 2) { continue; } String[] sMap = map.split("="); if (sMap[0].equals("emailAddress")) { mailMap = sMap[1]; } } if (mailMap == null) { _log.warn("LDAP server configured without the mail map"); continue; } LDAPUtil samlLdapUtil = new LDAPUtil( PrefsPropsUtil.getString(companyId, PropsKeys.LDAP_BASE_PROVIDER_URL + "." + idLDAP), PrefsPropsUtil.getString(companyId, PropsKeys.LDAP_BASE_DN + "." + idLDAP)); Iterator<String> ldapFilter = lstLdapFilter.iterator(); while (ldapFilter.hasNext() && user == null) { String mail = samlLdapUtil.getUserAttribute( PrefsPropsUtil.getString(companyId, PropsKeys.LDAP_IMPORT_USER_SEARCH_FILTER + "." + idLDAP), ldapFilter.next(), mailMap); if (mail != null) { try { user = UserLocalServiceUtil.getUserByEmailAddress(companyId, mail); } catch (NoSuchUserException nse) { _log.debug("Mail: " + mail + " found in LDAP but it is not registered"); } } } } } if (user == null) { _log.info("Impossible to find a user with the current attributes"); actionResponse.sendRedirect(PrefsPropsUtil.getString(themeDisplay.getCompanyId(), FedPropsKeys.STORK_AUTH_PAGE_MISS_USER, FedPropsValues.STORK_AUTH_PAGE_MISS_USER)); return; } HttpSession session = PortalUtil.getHttpServletRequest(actionRequest).getSession(); session.setAttribute(FedWebKeys.STORK_ID_LOGIN, new Long(user.getUserId())); // sendRedirect(actionRequest, actionResponse, PortalUtil.getPortalURL(actionRequest) + themeDisplay.getURLSignIn()); sendRedirect(actionRequest, actionResponse, ParamUtil.getString(actionRequest, "redirect", PortalUtil.getPortalURL(actionRequest) + themeDisplay.getURLSignIn())); } else { setForward(actionRequest, "portlet.login.stork.notAuth"); } } else { if (Validator.isNull(ParamUtil.getString(actionRequest, "citizenCountry"))) { SessionErrors.add(actionRequest, "missUserCountry"); return; } STORKAuthnRequest authnRequest = new STORKAuthnRequest(); authnRequest.setCitizenCountryCode(ParamUtil.getString(actionRequest, "citizenCountry")); authnRequest .setIssuer(PrefsPropsUtil.getString(themeDisplay.getCompanyId(), FedPropsKeys.STORK_SP_NAME)); authnRequest.setDestination( PrefsPropsUtil.getString(themeDisplay.getCompanyId(), FedPropsKeys.STORK_SPEPS_URL)); authnRequest.setProviderName( PrefsPropsUtil.getString(themeDisplay.getCompanyId(), FedPropsKeys.STORK_SP_NAME)); authnRequest .setQaa(PrefsPropsUtil.getInteger(themeDisplay.getCompanyId(), FedPropsKeys.STORK_SP_QAALEVEL)); ActionResponseImpl actionResponseImpl = (ActionResponseImpl) actionResponse; PortletURL portletURL = actionResponseImpl.createActionURL(); portletURL.setParameter("struts_action", "/login/stork"); portletURL.setParameter("StorkAction", "login"); portletURL.setParameter("saveLastPath", "0"); portletURL.setParameter("redirect", ParamUtil.getString(actionRequest, "redirect", themeDisplay.getPathMain())); portletURL.setWindowState(WindowState.NORMAL); authnRequest.setAssertionConsumerServiceURL(portletURL.toString()); _log.debug("STORK Return url: " + portletURL.toString()); authnRequest.setSpSector( PrefsPropsUtil.getString(themeDisplay.getCompanyId(), FedPropsKeys.STORK_SP_SECTOR)); authnRequest.setSpInstitution( PrefsPropsUtil.getString(themeDisplay.getCompanyId(), FedPropsKeys.STORK_SP_NAME)); authnRequest.setSpApplication( PrefsPropsUtil.getString(themeDisplay.getCompanyId(), FedPropsKeys.STORK_SP_APLICATION)); authnRequest.setSpCountry( PrefsPropsUtil.getString(themeDisplay.getCompanyId(), FedPropsKeys.STORK_SP_COUNTRY)); authnRequest.setSPID(PrefsPropsUtil.getString(themeDisplay.getCompanyId(), FedPropsKeys.STORK_SP_NAME)); IPersonalAttributeList pAttList = new PersonalAttributeList(); boolean eIdentifier = false; if (storkUserMapping != null) { for (String attrMap : storkUserMapping.keySet()) { PersonalAttribute attr = new PersonalAttribute(); attr.setName(storkUserMapping.get(attrMap)); if (attrMap.equals(storkMandatoryAttr) && storkUserMapping.get(attrMap).equals("eIdentifier")) { attr.setIsRequired(true); eIdentifier = true; _log.debug("Attribute " + attrMap + " mapped in " + storkUserMapping.get(attrMap) + " is required"); } else { if (attrMap.equals(storkMandatoryAttr)) { attr.setIsRequired(true); _log.debug("Attribute " + attrMap + " mapped in " + storkUserMapping.get(attrMap) + " is required"); } else { attr.setIsRequired(false); _log.debug("Attribute " + attrMap + " mapped in " + storkUserMapping.get(attrMap) + " is not required"); } } pAttList.add(attr); } if (!eIdentifier) { pAttList.add(new PersonalAttribute("eIdentifier", true, null, null)); } } authnRequest.setPersonalAttributeList(pAttList); byte token[] = null; try { STORKSAMLEngine storkEngine = STORKSAMLEngine.getInstance("SP"); token = storkEngine.generateSTORKAuthnRequest(authnRequest).getTokenSaml(); } catch (Exception ex) { _log.error("Impossible to create the SAML token"); _log.error(ex); setForward(actionRequest, "portlet.login.stork.error"); } if (token != null) { actionResponse.setRenderParameter("SAMLToken", PEPSUtil.encodeSAMLToken(token)); actionResponse.setRenderParameter("CCountry", ParamUtil.getString(actionRequest, "citizenCountry")); actionResponse.setRenderParameter("PEPSUrl", PrefsPropsUtil.getString(themeDisplay.getCompanyId(), FedPropsKeys.STORK_SPEPS_URL)); setForward(actionRequest, "portlet.login.stork.peps"); } } }
From source file:com.liferay.portlet.plugininstaller.action.InstallPluginAction.java
License:Open Source License
protected void unignorePackages(ActionRequest actionRequest) throws Exception { String[] pluginPackagesUnignored = StringUtil .splitLines(ParamUtil.getString(actionRequest, "pluginPackagesUnignored")); String[] pluginPackagesIgnored = PrefsPropsUtil.getStringArray( PropsKeys.PLUGIN_NOTIFICATIONS_PACKAGES_IGNORED, StringPool.NEW_LINE, PropsValues.PLUGIN_NOTIFICATIONS_PACKAGES_IGNORED); StringBundler sb = new StringBundler(); for (int i = 0; i < pluginPackagesIgnored.length; i++) { String packageId = pluginPackagesIgnored[i]; if (!ArrayUtil.contains(pluginPackagesUnignored, packageId)) { sb.append(packageId);//www . j a va 2s .c o m sb.append(StringPool.NEW_LINE); } } PortletPreferences preferences = PrefsPropsUtil.getPreferences(); preferences.setValue(PropsKeys.PLUGIN_NOTIFICATIONS_PACKAGES_IGNORED, sb.toString()); preferences.store(); PluginPackageUtil.refreshUpdatesAvailableCache(); }