List of usage examples for com.liferay.portal.util PrefsPropsUtil getBoolean
public static boolean getBoolean(PortletPreferences preferences, String name, boolean defaultValue)
From source file:com.custom.portal.security.ldap.CustomPortalLDAPImporterImpl.java
License:Open Source License
protected User updateUser(long companyId, CustomLDAPUser ldapUser, User user, Properties userMappings, Properties contactMappings, String password, String modifiedDate, boolean isNew) throws Exception { Date ldapUserModifiedDate = null; boolean passwordReset = ldapUser.isPasswordReset(); if (PrefsPropsUtil.getBoolean(companyId, PropsKeys.LDAP_EXPORT_ENABLED, PropsValues.LDAP_EXPORT_ENABLED)) { passwordReset = user.isPasswordReset(); }//from w w w . j ava 2 s . c o m try { if (Validator.isNotNull(modifiedDate)) { ldapUserModifiedDate = LDAPUtil.parseDate(modifiedDate); if (ldapUserModifiedDate.equals(user.getModifiedDate())) { if (ldapUser.isAutoPassword()) { if (_log.isDebugEnabled()) { _log.debug("Skipping user " + user.getEmailAddress() + " because he is already synchronized"); } return user; } UserLocalServiceUtil.updatePassword(user.getUserId(), password, password, passwordReset, true); if (_log.isDebugEnabled()) { _log.debug("User " + user.getEmailAddress() + " is already synchronized, but updated " + "password to avoid a blank value"); } return user; } } else if (!isNew) { if (_log.isInfoEnabled()) { _log.info("Skipping user " + user.getEmailAddress() + " because the LDAP entry was never modified"); } return user; } } catch (ParseException pe) { if (_log.isDebugEnabled()) { _log.debug("Unable to parse LDAP modify timestamp " + modifiedDate, pe); } } if (!PropsValues.LDAP_IMPORT_USER_PASSWORD_ENABLED) { password = PropsValues.LDAP_IMPORT_USER_PASSWORD_DEFAULT; if (StringUtil.equalsIgnoreCase(password, _USER_PASSWORD_SCREEN_NAME)) { password = ldapUser.getScreenName(); } } if (Validator.isNull(ldapUser.getScreenName())) { ldapUser.setAutoScreenName(true); } if (ldapUser.isAutoScreenName()) { ScreenNameGenerator screenNameGenerator = ScreenNameGeneratorFactory.getInstance(); ldapUser.setScreenName( screenNameGenerator.generate(companyId, user.getUserId(), ldapUser.getEmailAddress())); } Calendar birthdayCal = CalendarFactoryUtil.getCalendar(); Contact ldapContact = ldapUser.getContact(); birthdayCal.setTime(ldapContact.getBirthday()); int birthdayMonth = birthdayCal.get(Calendar.MONTH); int birthdayDay = birthdayCal.get(Calendar.DAY_OF_MONTH); int birthdayYear = birthdayCal.get(Calendar.YEAR); if (ldapUser.isUpdatePassword()) { UserLocalServiceUtil.updatePassword(user.getUserId(), password, password, passwordReset, true); } updateLDAPUser(ldapUser.getUser(), ldapContact, user, userMappings, contactMappings); user = UserLocalServiceUtil.updateUser(user.getUserId(), password, StringPool.BLANK, StringPool.BLANK, passwordReset, ldapUser.getReminderQueryQuestion(), ldapUser.getReminderQueryAnswer(), ldapUser.getScreenName(), ldapUser.getEmailAddress(), ldapUser.getFacebookId(), ldapUser.getOpenId(), ldapUser.getLanguageId(), ldapUser.getTimeZoneId(), ldapUser.getGreeting(), ldapUser.getComments(), ldapUser.getFirstName(), ldapUser.getMiddleName(), ldapUser.getLastName(), ldapUser.getPrefixId(), ldapUser.getSuffixId(), ldapUser.isMale(), birthdayMonth, birthdayDay, birthdayYear, ldapUser.getSmsSn(), ldapUser.getAimSn(), ldapUser.getFacebookSn(), ldapUser.getIcqSn(), ldapUser.getJabberSn(), ldapUser.getMsnSn(), ldapUser.getMySpaceSn(), ldapUser.getSkypeSn(), ldapUser.getTwitterSn(), ldapUser.getYmSn(), ldapUser.getJobTitle(), ldapUser.getGroupIds(), ldapUser.getOrganizationIds(), ldapUser.getRoleIds(), ldapUser.getUserGroupRoles(), ldapUser.getUserGroupIds(), ldapUser.getServiceContext()); boolean hasBusinessPhone = false; for (Phone phone : user.getPhones()) { if (phone.getTypeId() == 11006) { hasBusinessPhone = true; break; } } if (!hasBusinessPhone && !ldapUser.getPhone().isEmpty()) { if (_log.isDebugEnabled()) { _log.debug("Adding Business phone: " + ldapUser.getPhone()); } PhoneLocalServiceUtil.addPhone(user.getUserId(), Contact.class.getName(), user.getContactId(), ldapUser.getPhone(), "", 11006, true, ldapUser.getServiceContext()); } boolean hasBusinessAddress = false; for (Address address : user.getAddresses()) { if (address.getTypeId() == 11000) { hasBusinessAddress = true; break; } } if (!hasBusinessAddress && !ldapUser.getStreet().isEmpty() && !ldapUser.getCity().isEmpty()) { if (_log.isDebugEnabled()) { _log.debug("Adding Business Address: " + ldapUser.getStreet() + " " + ldapUser.getCity() + " " + ldapUser.getZip()); } AddressLocalServiceUtil.addAddress(user.getUserId(), Contact.class.getName(), user.getContactId(), ldapUser.getStreet(), "", "", ldapUser.getCity(), ldapUser.getZip(), 0, 0, 11000, true, true, ldapUser.getServiceContext()); } user = UserLocalServiceUtil.updateStatus(user.getUserId(), ldapUser.getStatus()); if (ldapUserModifiedDate != null) { user = UserLocalServiceUtil.updateModifiedDate(user.getUserId(), ldapUserModifiedDate); } if (ldapUser.isUpdatePortrait()) { byte[] portraitBytes = ldapUser.getPortraitBytes(); if (ArrayUtil.isNotEmpty(portraitBytes)) { UserLocalServiceUtil.updatePortrait(user.getUserId(), portraitBytes); } else { UserLocalServiceUtil.deletePortrait(user.getUserId()); } } return user; }
From source file:com.ext.portal.servlet.filters.sso.cas.CASFilterExt.java
License:Open Source License
@Override public boolean isFilterEnabled(HttpServletRequest request, HttpServletResponse response) { try {/*from w w w.j av a 2s .c o m*/ long companyId = PortalUtil.getCompanyId(request); if (PrefsPropsUtil.getBoolean(companyId, PropsKeys.CAS_AUTH_ENABLED, PropsValues.CAS_AUTH_ENABLED)) { return true; } } catch (Exception e) { _log.error(e, e); } return false; }
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(); }//w w w .j a v a2 s . 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:org.intalio.tempo.web.CASFilter510.java
License:Open Source License
protected void processFilter(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) {//from w w w.j a v a 2 s.c om try { long companyId = PortalUtil.getCompanyId(request); if (PrefsPropsUtil.getBoolean(companyId, PropsKeys.CAS_AUTH_ENABLED, PropsValues.CAS_AUTH_ENABLED)) { String pathInfo = request.getPathInfo(); if (pathInfo.indexOf("/portal/logout") != -1) { HttpSession session = request.getSession(); session.invalidate(); String logoutUrl = PrefsPropsUtil.getString(companyId, PropsKeys.CAS_LOGOUT_URL); response.sendRedirect(logoutUrl); } else { Filter casFilter = getCASFilter(companyId); casFilter.doFilter(request, response, filterChain); } } else { processFilter(edu.yale.its.tp.cas.client.filter.CASFilter.class, request, response, filterChain); } } catch (Exception e) { _log.error(e, e); } }
From source file:org.intalio.tempo.web.CASFilter520.java
License:Open Source License
protected void processFilter(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) {//from w ww . j av a2s. c o m try { long companyId = PortalUtil.getCompanyId(request); if (PrefsPropsUtil.getBoolean(companyId, PropsKeys.CAS_AUTH_ENABLED, PropsValues.CAS_AUTH_ENABLED)) { String pathInfo = request.getPathInfo(); if (pathInfo.indexOf("/portal/logout") != -1) { HttpSession session = request.getSession(); session.invalidate(); String logoutUrl = PrefsPropsUtil.getString(companyId, PropsKeys.CAS_LOGOUT_URL, PropsValues.CAS_LOGOUT_URL); response.sendRedirect(logoutUrl); } else { Filter casFilter = getCASFilter(companyId); casFilter.doFilter(request, response, filterChain); } } else { processFilter(CASFilter.class, request, response, filterChain); } } catch (Exception e) { _log.error(e, e); } }