我有一个
SpringBoot 2.6.14
网络应用程序,为了验证电子邮件,我创建了一个注释,如下所示:
@Email(message="Please provide a valid email address")
@Pattern(regexp=".+@.+\\..+", message="Please provide a valid email address")
@Target( { ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = {})
@Documented
public @interface EmailValidator {
String message() default "Please provide a valid email address";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
很明显,这个
@EmailValidator
适用于String
。现在它完美运行,例如以下电子邮件:
[email protected] -> PASS
foo#foo.it -> FAIL
[email protected]. -> FAIL
[email protected] -> PASS
[email protected] -> PASS
[email protected] -> FAIL
这对我来说已经足够了(即使我复制正则表达式并把它放在这里,我也无法重现预期的结果,这让我很生气)
无论如何
SonarQube
,在我的夜间构建中,将该正则表达式报告为热点安全问题。现在通常我把正则表达式 here 并尝试使其所有格。这次我没能做到,因为如果我把那个正则表达式放在测试仪上,匹配与休眠验证用我的注释执行的匹配是不同的。
有人可以帮助我使正则表达式具有所有格(或者至少不是 SonarQube 的问题)吗?