Cómo crear un filtro JSF/patrón de URL para proteger javascripts

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?

preguntado el 12 de junio de 12 a las 20:06

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 -

2 Respuestas

<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

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>

Echa un vistazo a esta página

Respondido 29 ago 12, 08:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.