⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loginservices.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        result.put("updatedUserLogin", userLoginToUpdate);        return result;    }    /** Updates the UserLoginId for a party, replicating password, etc from     *    current login and expiring the old login.     *@param ctx The DispatchContext that this service is operating in     *@param context Map containing the input parameters     *@return Map with the result of the service, the output parameters     */    public static Map updateUserLoginId(DispatchContext ctx, Map context) {        Map result = new HashMap();        GenericDelegator delegator = ctx.getDelegator();        GenericValue loggedInUserLogin = (GenericValue) context.get("userLogin");        List errorMessageList = new LinkedList();        Locale locale = (Locale) context.get("locale");        //boolean useEncryption = "true".equals(UtilProperties.getPropertyValue("security.properties", "password.encrypt"));        String userLoginId = (String) context.get("userLoginId");        String errMsg = null;        if ((userLoginId != null) && ("true".equals(UtilProperties.getPropertyValue("security.properties", "username.lowercase")))) {            userLoginId = userLoginId.toLowerCase();        }        String partyId = loggedInUserLogin.getString("partyId");        String password = loggedInUserLogin.getString("currentPassword");        String passwordHint = loggedInUserLogin.getString("passwordHint");        // security: don't create a user login if the specified partyId (if not empty) already exists        // unless the logged in user has permission to do so (same partyId or PARTYMGR_CREATE)        if (partyId != null || partyId.length() > 0) {            //GenericValue party = null;            //try {            //    party = delegator.findByPrimaryKey("Party", UtilMisc.toMap("partyId", partyId));            //} catch (GenericEntityException e) {            //    Debug.logWarning(e, "", module);            //}            if (loggedInUserLogin != null) {                // security check: userLogin partyId must equal partyId, or must have PARTYMGR_CREATE permission                if (!partyId.equals(loggedInUserLogin.getString("partyId"))) {                    errMsg = UtilProperties.getMessage(resource,"loginservices.party_with_party_id_exists_not_permission_create_user_login", locale);                    errorMessageList.add(errMsg);                }            } else {                errMsg = UtilProperties.getMessage(resource,"loginservices.must_logged_in_have_permission_create_user_login_exists", locale);                errorMessageList.add(errMsg);            }        }        GenericValue newUserLogin = null;        boolean doCreate = true;        // check to see if there's a matching login and use it if it's for the same party        try {            newUserLogin = delegator.findByPrimaryKey("UserLogin", UtilMisc.toMap("userLoginId", userLoginId));        } catch (GenericEntityException e) {            Debug.logWarning(e, "", module);            Map messageMap = UtilMisc.toMap("errorMessage", e.getMessage());            errMsg = UtilProperties.getMessage(resource,"loginservices.could_not_create_login_user_read_failure", messageMap, locale);            errorMessageList.add(errMsg);        }        if (newUserLogin != null) {            if (!newUserLogin.get("partyId").equals(partyId)) {                Map messageMap = UtilMisc.toMap("userLoginId", userLoginId);                errMsg = UtilProperties.getMessage(resource,"loginservices.could_not_create_login_user_with_ID_exists", messageMap, locale);                errorMessageList.add(errMsg);            } else {                doCreate = false;            }        } else {            newUserLogin = delegator.makeValue("UserLogin", UtilMisc.toMap("userLoginId", userLoginId));        }        newUserLogin.set("passwordHint", passwordHint);        newUserLogin.set("partyId", partyId);        newUserLogin.set("currentPassword", password);        newUserLogin.set("enabled", "Y");        newUserLogin.set("disabledDateTime", null);        if (errorMessageList.size() > 0) {            return ServiceUtil.returnError(errorMessageList);        }        try {            if (doCreate) {                newUserLogin.create();            } else {                newUserLogin.store();            }        } catch (GenericEntityException e) {            Debug.logWarning(e, "", module);            Map messageMap = UtilMisc.toMap("errorMessage", e.getMessage());            errMsg = UtilProperties.getMessage(resource,"loginservices.could_not_create_login_user_write_failure", messageMap, locale);            return ServiceUtil.returnError(errMsg);        }        loggedInUserLogin.set("enabled", "N");        loggedInUserLogin.set("disabledDateTime", UtilDateTime.nowTimestamp());        try {            loggedInUserLogin.store();        } catch (GenericEntityException e) {            Debug.logWarning(e, "", module);            Map messageMap = UtilMisc.toMap("errorMessage", e.getMessage());            errMsg = UtilProperties.getMessage(resource,"loginservices.could_not_disable_old_login_user_write_failure", messageMap, locale);            return ServiceUtil.returnError(errMsg);        }        result.put(ModelService.RESPONSE_MESSAGE, ModelService.RESPOND_SUCCESS);        result.put("newUserLogin", newUserLogin);        return result;    }    /** Updates UserLogin Security info     *@param ctx The DispatchContext that this service is operating in     *@param context Map containing the input parameters     *@return Map with the result of the service, the output parameters     */    public static Map updateUserLoginSecurity(DispatchContext ctx, Map context) {        Map result = new HashMap();        GenericDelegator delegator = ctx.getDelegator();        Security security = ctx.getSecurity();        GenericValue loggedInUserLogin = (GenericValue) context.get("userLogin");        Locale locale = (Locale) context.get("locale");        String userLoginId = (String) context.get("userLoginId");        String errMsg = null;        if (userLoginId == null || userLoginId.length() == 0) {            userLoginId = loggedInUserLogin.getString("userLoginId");        }        // <b>security check</b>: must have PARTYMGR_UPDATE permission        if (!security.hasEntityPermission("PARTYMGR", "_UPDATE", loggedInUserLogin) && !security.hasEntityPermission("SECURITY", "_UPDATE", loggedInUserLogin)) {            errMsg = UtilProperties.getMessage(resource,"loginservices.not_permission_update_security_info_for_user_login", locale);            return ServiceUtil.returnError(errMsg);        }        GenericValue userLoginToUpdate = null;        try {            userLoginToUpdate = delegator.findByPrimaryKey("UserLogin", UtilMisc.toMap("userLoginId", userLoginId));        } catch (GenericEntityException e) {            Map messageMap = UtilMisc.toMap("errorMessage", e.getMessage());            errMsg = UtilProperties.getMessage(resource,"loginservices.could_not_change_password_read_failure", messageMap, locale);            return ServiceUtil.returnError(errMsg);        }        if (userLoginToUpdate == null) {            Map messageMap = UtilMisc.toMap("userLoginId", userLoginId);            errMsg = UtilProperties.getMessage(resource,"loginservices.could_not_change_password_userlogin_with_id_not_exist", messageMap, locale);            return ServiceUtil.returnError(errMsg);        }                boolean wasEnabled = !"N".equals(userLoginToUpdate.get("enabled"));        if (context.containsKey("enabled")) {            userLoginToUpdate.set("enabled", context.get("enabled"), true);        }        if (context.containsKey("disabledDateTime")) {            userLoginToUpdate.set("disabledDateTime", context.get("disabledDateTime"), true);        }        if (context.containsKey("successiveFailedLogins")) {            userLoginToUpdate.set("successiveFailedLogins", context.get("successiveFailedLogins"), true);        }        // if was disabled and we are enabling it, clear disabledDateTime        if (!wasEnabled && "Y".equals(context.get("enabled"))) {            userLoginToUpdate.set("disabledDateTime", null);        }        // if was enabled and we are disabling it, and no disabledDateTime was passed, set it to now        if (wasEnabled && "N".equals(context.get("enabled")) && context.get("disabledDateTime") == null) {            userLoginToUpdate.set("disabledDateTime", UtilDateTime.nowTimestamp());        }        try {            userLoginToUpdate.store();        } catch (GenericEntityException e) {            Map messageMap = UtilMisc.toMap("errorMessage", e.getMessage());            errMsg = UtilProperties.getMessage(resource,"loginservices.could_not_change_password_write_failure", messageMap, locale);            return ServiceUtil.returnError(errMsg);        }        result.put(ModelService.RESPONSE_MESSAGE, ModelService.RESPOND_SUCCESS);        return result;    }    public static void checkNewPassword(GenericValue userLogin, String currentPassword, String newPassword, String newPasswordVerify, String passwordHint, List errorMessageList, boolean ignoreCurrentPassword, Locale locale) {        boolean useEncryption = "true".equals(UtilProperties.getPropertyValue("security.properties", "password.encrypt"));        String errMsg = null;        if (!ignoreCurrentPassword) {            String realPassword = currentPassword;            if (useEncryption && currentPassword != null) {                realPassword = LoginServices.getPasswordHash(currentPassword);            }            // if the password.accept.encrypted.and.plain property in security is set to true allow plain or encrypted passwords            boolean passwordMatches = currentPassword != null && (realPassword.equals(userLogin.getString("currentPassword")) ||                    ("true".equals(UtilProperties.getPropertyValue("security.properties", "password.accept.encrypted.and.plain")) && currentPassword.equals(userLogin.getString("currentPassword"))));            if ((currentPassword == null) || (userLogin != null && currentPassword != null && !passwordMatches)) {                errMsg = UtilProperties.getMessage(resource,"loginservices.old_password_not_correct_reenter", locale);                errorMessageList.add(errMsg);            }        }        if (!UtilValidate.isNotEmpty(newPassword) || !UtilValidate.isNotEmpty(newPasswordVerify)) {            errMsg = UtilProperties.getMessage(resource,"loginservices.password_or_verify_missing", locale);            errorMessageList.add(errMsg);        } else if (!newPassword.equals(newPasswordVerify)) {            errMsg = UtilProperties.getMessage(resource,"loginservices.password_did_not_match_verify_password", locale);            errorMessageList.add(errMsg);        }        int minPasswordLength = 0;        try {            minPasswordLength = Integer.parseInt(UtilProperties.getPropertyValue("security.properties", "password.length.min", "0"));        } catch (NumberFormatException nfe) {            minPasswordLength = 0;        }        if (newPassword != null) {            if (!(newPassword.length() >= minPasswordLength)) {                Map messageMap = UtilMisc.toMap("minPasswordLength", Integer.toString(minPasswordLength));                errMsg = UtilProperties.getMessage(resource,"loginservices.password_must_be_least_characters_long", messageMap, locale);                errorMessageList.add(errMsg);            }            if (userLogin != null && newPassword.equalsIgnoreCase(userLogin.getString("userLoginId"))) {                errMsg = UtilProperties.getMessage(resource,"loginservices.password_may_not_equal_username", locale);                errorMessageList.add(errMsg);            }            if (UtilValidate.isNotEmpty(passwordHint) && (passwordHint.toUpperCase().indexOf(newPassword.toUpperCase()) >= 0)) {                errMsg = UtilProperties.getMessage(resource,"loginservices.password_hint_may_not_contain_password", locale);                errorMessageList.add(errMsg);            }        }    }    public static String getPasswordHash(String str) {        String hashType = UtilProperties.getPropertyValue("security.properties", "password.encrypt.hash.type");        if (hashType == null || hashType.length() == 0) {            Debug.logWarning("Password encrypt hash type is not specified in security.properties, use SHA", module);            hashType = "SHA";        }        return HashCrypt.getDigestHash(str, hashType);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -