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;
}
}