fix #2350 add fe:maskEmail
This commit is contained in:
parent
508518cdf7
commit
c3b1035eaf
3 changed files with 45 additions and 0 deletions
|
@ -74,6 +74,9 @@ public class FessFunctions {
|
|||
|
||||
private static final String PDF_DATE = "pdf_date";
|
||||
|
||||
private static final Pattern EMAIL_ADDRESS_PATTERN = Pattern.compile("[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}",
|
||||
Pattern.CASE_INSENSITIVE);
|
||||
|
||||
private static LoadingCache<String, Long> resourceHashCache = CacheBuilder.newBuilder().maximumSize(1000)
|
||||
.expireAfterWrite(10, TimeUnit.MINUTES).build(new CacheLoader<String, Long>() {
|
||||
@Override
|
||||
|
@ -419,4 +422,11 @@ public class FessFunctions {
|
|||
.map(user -> user.hasRoles(roles) || user.hasRoles(ComponentUtil.getFessConfig().getAuthenticationAdminRolesAsArray()))
|
||||
.orElse(false);
|
||||
}
|
||||
|
||||
public static String maskEmail(final String value) {
|
||||
if (value == null) {
|
||||
return StringUtil.EMPTY;
|
||||
}
|
||||
return EMAIL_ADDRESS_PATTERN.matcher(value).replaceAll("******@****.***");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -258,6 +258,14 @@
|
|||
<example>${fe:formatCode("L", "prettyprint", doc.mimetype, doc.content_description)}</example>
|
||||
</function>
|
||||
|
||||
<function>
|
||||
<description>Mask e-mail address.</description>
|
||||
<name>maskEmail</name>
|
||||
<function-class>org.codelibs.fess.taglib.FessFunctions</function-class>
|
||||
<function-signature>java.lang.String maskEmail(java.lang.String)</function-signature>
|
||||
<example>${fe:maskEmail(doc.content_description)}</example>
|
||||
</function>
|
||||
|
||||
<function>
|
||||
<description>Get a message from properties files.</description>
|
||||
<name>message</name>
|
||||
|
|
|
@ -115,6 +115,33 @@ public class FessFunctionsTest extends UnitFessTestCase {
|
|||
code = "aaa\nL10:\nL11:ccc";
|
||||
value = FessFunctions.formatCode("L", "prettyprint", "text/plain", code);
|
||||
assertEquals("<pre class=\"prettyprint linenums:10\">\nccc</pre>", value);
|
||||
}
|
||||
|
||||
public void test_maskEmail() {
|
||||
String value;
|
||||
|
||||
value = FessFunctions.maskEmail(null);
|
||||
assertEquals("", value);
|
||||
|
||||
value = FessFunctions.maskEmail("");
|
||||
assertEquals("", value);
|
||||
|
||||
value = FessFunctions.maskEmail("aaa bbb ccc");
|
||||
assertEquals("aaa bbb ccc", value);
|
||||
|
||||
value = FessFunctions.maskEmail("aaa@bbb.ccc");
|
||||
assertEquals("******@****.***", value);
|
||||
|
||||
value = FessFunctions.maskEmail("111.aaa@bbb.ccc");
|
||||
assertEquals("******@****.***", value);
|
||||
|
||||
value = FessFunctions.maskEmail("111 aaa+@bbb.ccc 222");
|
||||
assertEquals("111 ******@****.*** 222", value);
|
||||
|
||||
value = FessFunctions.maskEmail("あaaa@bbb.ccc1");
|
||||
assertEquals("あ******@****.***1", value);
|
||||
|
||||
value = FessFunctions.maskEmail("<aaa@bbb.ccc>");
|
||||
assertEquals("<******@****.***>", value);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue