Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无重复字符序列的Passay密码_Java_Security_Passwords - Fatal编程技术网

Java 无重复字符序列的Passay密码

Java 无重复字符序列的Passay密码,java,security,passwords,Java,Security,Passwords,我正在使用passay库根据一系列要求验证密码: <dependencies> <dependency> <groupId>org.passay</groupId> <artifactId>passay</artifactId> <version>1.4.0</version> </dependency> </dependencies> or

我正在使用passay库根据一系列要求验证密码:

<dependencies>
  <dependency>
    <groupId>org.passay</groupId>
    <artifactId>passay</artifactId>
    <version>1.4.0</version>
  </dependency>
</dependencies>

org.passay
),但该规则仅适用于相同字符的序列(它将找到“aaa”,但不会找到“abab”)


passay是否有执行此操作的规则,或者我必须编写自定义规则?

嗯,我认为没有,但您不必编写自己的规则,如果需要,请尝试以下操作:

公共类重复序列扩展测试{
最终密码验证器验证器=新密码验证器(
新的非法规则(“({1,})\\1”)
);
@试验
公开作废支票(){
assertTrue(validator.validate(新密码数据(“正常”)).isValid();
assertTrue(validator.validate(新密码数据(“abcdef”)).isValid();
assertTrue(validator.validate(新密码数据(“ABACADEAF”)).isValid();
assertTrue(validator.validate(新密码数据(“xyzxy”)).isValid();
assertTrue(validator.validate(新密码数据(“12345”)).isValid();
assertTrue(validator.validate(新密码数据(“121314”)).isValid();
assertTrue(validator.validate(新密码数据(“1234123121”)).isValid();
assertTrue(validator.validate(新密码数据(“123xy123”)).isValid();
assertTrue(validator.validate(新密码数据(“1”)).isValid());
assertTrue(validator.validate(新密码数据(“”).isValid());
assertFalse(validator.validate(新密码数据(“apple”)).isValid());
assertFalse(validator.validate(新密码数据(“香蕉”)).isValid());
assertFalse(validator.validate(新密码数据(“112233”)).isValid();
assertFalse(validator.validate(新密码数据(“123123”)).isValid();
assertFalse(validator.validate(新密码数据(“1212”)).isValid();
assertFalse(validator.validate(新密码数据(“11”)).isValid());
assertFalse(validator.validate(新密码数据(“123xy123xy”)).isValid();
}
}

这个正则表达式工作得很好。我不熟悉“\1”(反向引用)。