2015-07-27 2 views
1

Я пытаюсь использовать AntiSamy, чтобы предотвратить атаки XSS на моем сайте. Я скачал следующие банки и добавили их в "/ WEB-INF/Lib"Расположение файла политики AntiSamy в веб-проекте

  • antisamy-1.5.3.jar

  • nekohtml.jar

  • xercesImpl-2.5.0. баночка

вместе с файлом политики antisamy-Slashdot-1.4.4.xml в "/ WEB-INF".

Я попытался реализовать фильтр через web.xml. Отрывок сервлета Я использую это

public class AntiSamyFilter implements Filter { 

private static final Logger LOG = Logger.getLogger(AntiSamyFilter.class); 

private final AntiSamy antiSamy; 

public AntiSamyFilter() { 
    try { 
     URL url = this.getClass().getClassLoader().getResource("antisamy-slashdot-1.4.4.xml"); 
     LOG.info("After getResource"); 
     Policy policy = Policy.getInstance(url.getFile()); //Deployment fails 
     LOG.info("After Policy"); 
     antiSamy = new AntiSamy(policy); 
     LOG.info("After antiSamy"); 
    } catch (PolicyException e) { 
     throw new IllegalStateException(e.getMessage(), e); 
    } 
} 
} 

Развертывание терпит неудачу после политики политики = Policy.getInstance (url.getFile());. Вероятно, это из-за пути файла политики.

Может кто-нибудь скажет мне, где должен храниться файл политики?

ответ

2

Не удалось найти файл url.getFile, так как он не смог найти файл antisamy-slashdot-1.4.4.xml. Я создал пакет в src/my/package и изменил

URL url = this.getClass().getClassLoader().getResource("antisamy-slashdot-1.4.4.xml"); 

в

URL url = this.getClass().getClassLoader().getResource("/my/package/antisamy-slashdot-1.4.4.xml"); 

Я также добавил batik.jar вместе с другими файлами фляги. Он решил мою проблему

 Смежные вопросы

  • Нет связанных вопросов^_^