Obscenity Filter Using AOP
In SpringBlog, the obscenity filter is the main feature to showcase the usage of Spring AOP in
implementing cross-cutting concerns in an application. In this section, we will look into the details of its
implementation. For Spring configuration and the corresponding setup in tc Server, please refer to the
section "The AspectJ Load-Time Weaving Configuration" in this chapter.
Listing 21-16 shows the ObscenityFilter interface, which defines the methods for the obscenity
filter feature.
Listing 21-16. The ObscenityFilter Interface
package com.apress.prospring3.springblog.common.aop;
public interface ObscenityFilter {
public boolean containsObscenities(String data);
public String obfuscateObscenities(String data);
}
For the obscenity filter, two methods are defined. The containsObscenities() method is to check for
the existence of obscenities within the data, while the obfuscateObscenities() method is to transform
the obscenities into random meaningless words, by using ROT13 algorithm.
Listing 21-17 shows the implementation class of the ObscenityFilter interface.
Listing 21-17. The ListBasedObscenityFilter Class
package com.apress.prospring3.springblog.common.aop;
import
java.util.List;
import
java.util.regex.Matcher;
import
java.util.regex.Pattern;
import
javax.annotation.Resource;
import
org.springframework.stereotype.Service;
@Service("obscenityFilter")
public class ListBasedObscenityFilter implements ObscenityFilter {
private List<String> obscenities = null;
private Pattern obscenityPattern = null;
@Resource(name="obscenities")
public void setObscenities(List<String> obscenities) {
this.obscenities = obscenities;
buildRegex();
}
private void buildRegex() {
StringBuffer sb = new StringBuffer();
int size = obscenities.size();
for (int x = 0; x < size; x++) {
if (x != 0) {
sb.append("|");
Search WWH :
Custom Search
Previous Page
Spring Framework 3 Topic Index
Next Page
Spring Framework 3 Bookmarks
Home