【问题标题】:Enforcing password policy in AEM在 AEM 中实施密码策略
【发布时间】:2015-10-08 09:08:54
【问题描述】:

如何覆盖 AEM6 SP2 中的弱密码策略并为管理员和非管理员编辑器强制执行自定义严格密码策略?

【问题讨论】:

    标签: content-management-system adobe aem


    【解决方案1】:

    Sreekanth 在博客文章“AEM 61 - 触摸 UI 添加简单密码策略”中写道 你可以在这里找到它: http://experience-aem.blogspot.de/2015/09/aem-61-touch-ui-add-simple-password-policy.html

    (function ($, $document) {
    var ADMIN_PASSWORD_DIV = "#admin_password",
        FIELD_CHANGE_PASSWORD = ".change-user-password", // change password form
        FIELD_NEW_USER_PASSWORD = ".user-password-fields", //new user form
        BUTTON_OK = ".user-admin-change-password",  // change password form
        BUTTON_SAVE = ".user-admin-save-user", //new user form
        RE_TYPE_PASSWORD_FIELD = "[name='rep:re-password']";
    
    var $policyText = $("<div/>").css('padding-bottom', '10px')
                                .css('font-style', 'italic')
                                .css('text-align', 'center')
                                .html('New Password must contain a number');
    
    $(ADMIN_PASSWORD_DIV).find(".coral-Modal-body")
                        .prepend($policyText);
    
    $(ADMIN_PASSWORD_DIV).find(RE_TYPE_PASSWORD_FIELD).focusout(focusHandler);
    
    $(FIELD_NEW_USER_PASSWORD).find(RE_TYPE_PASSWORD_FIELD).focusout(focusHandler);
    
    //change password form
    $document.on("keyup", FIELD_CHANGE_PASSWORD, function(){
        keyHandler($(FIELD_CHANGE_PASSWORD));
    });
    
    //new user form
    $document.on("keyup.user-admin change.user-admin selected.user-admin", ".save-button-enabler", function(){
        keyHandler( $(FIELD_NEW_USER_PASSWORD).find("[type=password]"));
    });
    
    function keyHandler($fields){
        if(!$fields || $fields.length != 2){
            return;
        }
    
        var one = $($fields[0]).val(), two = $($fields[1]).val();
    
        if(isValidPassword(one) && isValidPassword(two) && (one == two)){
            return;
        }
    
        $(BUTTON_OK).attr("disabled", "disabled"); // change password form
        $(BUTTON_SAVE).attr("disabled", "disabled"); //new user form
    }
    
    function focusHandler(event){
        clearErrors();
    
        var val = $(event.currentTarget).val();
    
        if(isValidPassword(val)){
            return;
        }
    
        var message = "Password must contain a number";
    
        showErrorAlert(message);
    }
    
    function clearErrors(){
        $(BUTTON_OK).removeAttr("disabled");   // change password form
        $(BUTTON_SAVE).removeAttr("disabled");  //new user form
    }
    
    function isValidPassword(text){
        if(!text){
            return true;
        }
    
        //check for number in text
        return /\d/.test(text);
    }
    
    function showErrorAlert(message, title){
        var fui = $(window).adaptTo("foundation-ui"),
            options = [{
                text: "OK",
                warning: true
            }];
    
        title = title || "Error";
    
        fui.prompt(title, message, "notice", options);
    
        $(BUTTON_OK).attr("disabled", "disabled"); // change password form
        $(BUTTON_SAVE).attr("disabled", "disabled"); //new user form
    }})(jQuery, jQuery(document));
    

    【讨论】:

    • 请尽量详细一点。
    猜你喜欢
    • 1970-01-01
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    相关资源
    最近更新 更多