grails - Grails验证密码

标签 grails

在 Controller 中,我如何验证密码,使其包含至少1个字母,1个数字,1个特殊字符并且至少8位数字。我尝试使用的代码如下:

  boolean validatePassword(String password) {
    System.out.println("In validate")
   def pattern = /^.*(?=.{7,})(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@#$%*&+()]).*$/
    def matcher = password =~ pattern
    System.out.println("HERERERE")
    return matcher.getCount() ? true : false
}

如果说一切都无效,这将不起作用。
我已经安装了spring security ui插件。有没有办法可以使用其验证功能?
我知道我可以用它来编码密码。

最佳答案

与其尝试在一个正则表达式中完成所有工作,不如将测试分开。由于在Groovy中,Matcher通过调用find()强制转换为boolean,因此下面的命令应该起作用,并使意图更清晰。

boolean validatePassword(String pass) {
  return (pass) && (pass.length() > 7) && (pass =~ /\p{Alpha}/) &&
         (pass =~ /\p{Digit}/) && (pass =~ /[!@#$%*&+()]/)
}

关于grails - Grails验证密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12513348/

相关文章:

grails - 如何在Grails中一次保存所有收藏

java - 如何使用Java防止XSS攻击或Rest API JSON中的不可信数据?

grails - 收到错误WAR打包错误:grails war启动失败

ajax - Grails 3推送通知

Grails Spring Security 插件 : Getting 302 for Ajax Request for timedout Session

multithreading - 如何创建一个具有多个线程的服务,这些线程都使用相同的 Hibernate session ?

grails - 在Grails中进行测试时,如何模拟忽略验证的域对象?

mysql - Grails:更改休眠方言时 SQL 语法错误

inheritance - Grails继承映射中的鉴别器问题

java - 对具有关系的对象实现save() Action ?