Example usage for com.liferay.portal.util PrefsPropsUtil getBoolean

List of usage examples for com.liferay.portal.util PrefsPropsUtil getBoolean

Introduction

In this page you can find the example usage for com.liferay.portal.util PrefsPropsUtil getBoolean.

Prototype

public static boolean getBoolean(PortletPreferences preferences, String name, boolean defaultValue) 

Source Link

Usage

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);
    }
}