Cómo crear un filtro JSF/patrón de URL para proteger javascripts
Frecuentes
Visto 2,345 veces
4
He escrito un filtro web Java para manejar la seguridad de mi aplicación JSF. Tengo el mapeo del filtro así:
<filter-mapping>
<filter-name>authFilter</filter-name>
<url-pattern>/secure/*</url-pattern>
<url-pattern>/login.jsf</url-pattern>
<url-pattern>/*.js.jsf</url-pattern> <--- invalid pattern
</filter-mapping>
y ahora quiero crear un patrón de URL para filtrar todos los archivos javascript. Estoy usando Primefaces, por lo que los archivos .js se recuperan en direcciones URL como esta:
http://localhost:8080/MyProject/javax.faces.resource/MyJavascriptFile.js.jsf?ln=MyLibrary
no puedo filtrar todo javax.faces.resouces
porque también contiene los archivos CSS. ¿Hay alguna manera de crear un patrón de URL para que coincida solo con javascripts?
2 Respuestas
3
<url-pattern>/*.js.jsf</url-pattern> <--- invalid pattern
De hecho, es un patrón de URL no válido. el comodín *
solo puede estar al principio o al final del patrón de URL. En su caso particular, no necesita el /
prefijo en absoluto.
<url-pattern>*.js.jsf</url-pattern> <--- valid pattern
Tenga en cuenta que este problema tiene nada que ver con JSF. Los filtros de servlet son parte de la API de servlet básica.
Ver también:
Respondido el 20 de junio de 20 a las 10:06
1
La funcionalidad de comodín * está limitada en JSF, porque solo se permite un * y debe ser al final de la cadena "form-view-id". Por ejemplo, (cualquier xml) Funciona.
<from-view-id>/customer/*</from-view-id>
Nunca coincidirá...
<from-view-id>/cus*mer/</from-view-id>
<from-view-id>/c*sto*er/*</from-view-id>
<from-view-id>*/customer</from-view-id>
Respondido 29 ago 12, 08:08
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas javascript jsf resources servlet-filters url-mapping or haz tu propia pregunta.
Como solución alternativa, agregué el patrón.
<url-pattern>/javax.faces.resource</url-pattenr>
y trató los casos deseados en el código de filtro - Pedro Peixoto