2015-10-30 2 views
2

Я хочу использовать пользовательский EL распознаватель, чтобы избежать XSS, как описано здесь: http://pukkaone.github.io/2011/01/03/jsp-cross-site-scripting-elresolver.htmlНевозможно зарегистрировать пользовательский ELResolver

Я добавил

<listener> 
    <listener-class>com.github.pukkaone.jsp.EscapeXmlELResolverListener</listener-class> 
</listener> 

моей web.xml, который является версия = «3,0»

Когда я начинаю мое приложение с помощью tomcat7-Maven-плагин: МВН tomcat7: запустить я получаю следующую ошибку

SEVERE: Exception sending context initialized event to listener instance of class com.github.pukkaone.jsp.EscapeXmlELResolverListener 
java.lang.NullPointerException 
    at com.github.pukkaone.jsp.EscapeXmlELResolverListener.contextInitialized(EscapeXmlELResolverListener.java:37) 

, где JspFactory.getDefaultFactory() возвращает null.

Похожие вопросы предполагают, что этот вопрос конфликтует сервлетов/JSP баночки, но шахты определяются как это предусмотрено

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>javax.servlet-api</artifactId> 
    <version>3.0.1</version> 
    <scope>provided</scope> 
</dependency> 
    <dependency> 
     <groupId>javax.servlet.jsp</groupId> 
     <artifactId>jsp-api</artifactId> 
     <version>2.2</version> 
     <scope>provided</scope> 
    </dependency> 

Я также подтвердил dependency:tree -Dverbose=true, что нет никаких паразитных зависимостей по классам.

ответ

0

, пожалуйста, можете ли вы проверить зависимость для servlet-api? artifactid должен быть servlet-api вместо javax.servlet-api

+0

Как указано выше, я использую сервлет версии 3.0, который соответствует новым артефактам javax.servlet-api. – user763648

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