001 package hirondelle.web4j.security;
002
003 import java.util.regex.*;
004 import hirondelle.web4j.util.Util;
005
006 /**
007 Fails all text containing links, except those appearing in
008 <a href='../ui/translate/Text.html#WikiStyleFormatting'>wiki-style formatting</a>.
009
010 <P>Almost all spam contains links. This implementation will reject all text that contains
011 '<tt>http://</tt>', <em>except</em> if the text contains any wiki-style links in the form
012 <tt>[link:http://www.google.ca Google]</tt>.
013 */
014 public class SpamDetectorImpl implements SpamDetector {
015
016 /** See class comment. */
017 public boolean isSpam(String aText) {
018 boolean result = false;
019 if( Util.contains(WIKI_LINK_PATTERN, aText)){
020 //OK
021 }
022 else {
023 if ( Util.contains(STANDARD_LINK_PATTERN, aText)) {
024 result = true;
025 }
026 }
027 return result;
028 }
029
030 // PRIVATE //
031 private static final Pattern WIKI_LINK_PATTERN = Pattern.compile("\\[link:http://");
032 private static final Pattern STANDARD_LINK_PATTERN = Pattern.compile("http://");
033 }