# 自定义密码强度和默认密码

# 背景&需求(接着是二号标题)

1、当前系统密码强度不满足客户需求,可以通过spi的方式自定义密码强度 2、当前系统的默认密码不符合客户要求,可以通过spi的方式自定义默认密码

# 依赖服务

用户中心(ctp-user)

# 版本要求

自定义密码强度:ctp-user 版本5.0.3+ 自定义默认密码:ctp-user版本5.3+

# 操作步骤&解决方案

# 步骤一:

客开工程依赖ctp-user-api jar包

# 步骤二:

客开实现方法:

public interface PasswordCheckService {

    /**
     * 方法类型
     *
     * @return  方法类型集合
     */
    default List<PasswordMethodTypeEnum> getMethodType() {
        return Lists.newArrayList(PasswordMethodTypeEnum.CHECK_STRENGTH);
    };

    /**
     * 密码强度校验
     * @param password
     * @return
     */
    default Boolean checkPasswordStrength(String password) {
        return Boolean.TRUE;
    }

    /**
     * 自定义初始化密码
     *
     * @param userDto 用户信息
     * @param password  原始密码
     * @return
     */
    default String customInitPassword(CtpUserSpiUserDto userDto, String password) {
        return password;
    }
}

getMethodType说明执行的功能,如果只执行密码强度,则返回Lists.newArrayList(PasswordMethodTypeEnum.CHECK_STRENGTH);如果既要执行密码强度,又要执行自定义初始化密码,则返回Lists.newArrayList(PasswordMethodTypeEnum.CHECK_STRENGTH, PasswordMethodTypeEnum.INIT_PASS)

# 自定义密码规则

实现checkPasswordStrength 方法,判断传入的password是否符合客户自定义的密码规则,如果符合,就返回true,不符合就返回false ***注意:***如果一旦配置自定义的密码规则,通过系统管理员配置的密码规则不会再生效,完全以客开规则为准

# 自定义初始化密码:

实现customInitPassword 方法,自定义初始化密码,返回自定义后的初始化密码 ***注意:***如果一旦配置自定义的初始化密码,通过系统管理员配置的初始密码不会再生效,并且也不会受是否启用初始化密码开关控制,完全以自定义的为准

# 步骤三:

打包好后在nacos ctp-user中配置插件

seeyon:
  spi:
    enable: true
    spi-plugins:
    - oss:com.seeyon,xxxx,5.0.xxx

# 步骤四:

重启用户中心

编撰人:liuxiong