我正在尝试使用AntiSamy来防止XSS对我的站点的攻击。我下载了以下jars并将它们添加到“/WEB/lib”中
以及“/WEB”中的策略文件antisamy-slashdot-1.4.4.xml。
我试图通过web.xml实现一个过滤器。我正在使用的servlet的一个片段是
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());.策略=策略之后,部署失败这可能是因为策略文件的路径。
有人能告诉我政策文件应该放在哪里吗?
发布于 2015-07-28 09:23:06
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和其他jar文件。它解决了我的问题
https://stackoverflow.com/questions/31653108
复制相似问题