package no.dusken.aranea.util; import no.dusken.common.model.Mail; import org.owasp.validator.html.*; import java.io.InputStream; /** * @author Benjamin Bjørnseth <benjamin@underdusken.no> */ public class MailCleanerImpl implements MailCleaner{ private AntiSamy as; public MailCleanerImpl(String policy) throws PolicyException { InputStream is = getClass().getClassLoader().getResourceAsStream(policy); Policy pol = Policy.getInstance(is); as = new AntiSamy(pol); } public void cleanMail(Mail mail) throws ScanException, PolicyException { String body = mail.getBody(); String fromAd = mail.getFromAddress(); String fromName = mail.getFromName(); String toAd = mail.getToAddress(); String subject = mail.getSubject(); CleanResults cr = null; if (body != null) { cr = as.scan(body); mail.setBody(cr.getCleanHTML()); } if (fromAd != null) { cr = as.scan(fromAd); mail.setFromAddress(cr.getCleanHTML()); } if (fromName != null) { cr = as.scan(fromName); mail.setFromName(cr.getCleanHTML()); } if (toAd != null) { cr = as.scan(toAd); mail.setToAddress(cr.getCleanHTML()); } if (subject != null) { cr = as.scan(subject); mail.setSubject(cr.getCleanHTML()); } } public void setAs(AntiSamy as) { this.as = as; } }