====== Filtros para Bloquear el Acceso a la Aplicación ====== En FundeWeb 2.0 y en FundeWeb 1.2.x tenemos disponibles varios filtros para bloquear el acceso a la aplicación. Este bloqueo de acceso tiene dos tipos: informar de que la aplicación esta en mantenimiento o no tener autorizado el acceso a la aplicación. Los filtros son los siguientes: - **//RemoteAddressAccessControlFilter//**: Bloqueamos el acceso a la aplicación ciertas direcciones IP. - **//RemoteHostAccessControlFilter//**: Bloqueamos el acceso a la aplicación ciertos nombres de host. - **//TimeIntervalLockAccessControlFilter//**: Bloqueamos el acceso a la aplicación en un cierto intervalo de tiempo. ===== RemoteAddressAccessControlFilter ===== Este filtro permite bloquear el acceso a la aplicación a determinadas direcciones IP que se especifican mediante una [[https://docs.oracle.com/javase/tutorial/essential/regex/|expresión regular]]. Para poder utilizar el filtro, tendremos que realizar los siguientes pasos: 1.- Hay que añadir el siguiente espacio de nombres en el elemento raíz //// del fichero //components.xml// (donde están definidos el resto de espacio de nombres): Para FundeWeb 1.2.x: xmlns:fdw-control="http://www.umu.org/atica/seam/web/control"\\ Para FundeWeb 2.0.x: xmlns:fdw-control="http://www.um.es/atica/seam/web/control"\\ 2.- En la propiedad _xsi:schemaLocation_ añadimos lo siguiente: Para FundeWeb 1.2.x: http://www.umu.org/atica/seam/web/control http://www.umu.org/atica/seam/web/control-1.5.0.xsd\\ Para FundeWeb 2.0.x: http://www.um.es/atica/seam/web/control http://www.um.es/atica/seam/web/control-2.0.0.xsd\\ 3.- Añadir la configuración del filtro: ... Las propiedades importantes son las siguientes: - **//disabled//**: indica si el filtro esta desactivado (con valor //true//) o activado (con valor //false//). Por defecto el filtro esta desactivado. - **//allow//**: lista separada por comas o espacios de expresiones regulares para indicar que direcciones IP pueden acceder a la aplicación. Puede dejarse vacia para dejar pasar todas las peticiones desde IPs no especificadas en la propiedad //deny//. - **//deny//**: lista separada por comas o espacios de expresiones regulares para indicar que direcciones IP **no** pueden acceder a la aplicación. - **//access-lock//**: tipo de bloqueo de acceso, que puede ser: //MAINTENANCE// o //AUTHORIZATION//. Por defecto es //MAINTENANCE//. - **//access-lock-page//**: el //viewId// la página de bloqueo. Por defecto es: ///fundeweb/accessLock.xhtml//. ===== RemoteHostAccessControlFilter ===== Este filtro permite bloquear el acceso a la aplicación a determinados nombres de HOST que se especifican mediante una [[https://docs.oracle.com/javase/tutorial/essential/regex/|expresión regular]]. Para poder utilizar el filtro, tendremos que realizar los siguientes pasos: 1.- Hay que añadir el siguiente espacio de nombres en el elemento raíz //// del fichero //components.xml// (donde están definidos el resto de espacio de nombres): Para FundeWeb 1.2.x: xmlns:fdw-control="http://www.umu.org/atica/seam/web/control"\\ Para FundeWeb 2.0.x: xmlns:fdw-control="http://www.um.es/atica/seam/web/control"\\ 2.- En la propiedad _xsi:schemaLocation_ añadimos lo siguiente: Para FundeWeb 1.2.x: http://www.umu.org/atica/seam/web/control http://www.umu.org/atica/seam/web/control-1.5.0.xsd\\ Para FundeWeb 2.0.x: http://www.um.es/atica/seam/web/control http://www.um.es/atica/seam/web/control-2.0.0.xsd\\ 3.- Añadir la configuración del filtro: ... Las propiedades importantes son las siguientes: - **//disabled//**: indica si el filtro esta desactivado (con valor //true//) o activado (con valor //false//). Por defecto el filtro esta desactivado. - **//allow//**: lista separada por comas o espacios de expresiones regulares para indicar que nombres de HOST pueden acceder a la aplicación. Puede dejarse vacia para dejar pasar todas las peticiones desde HOSTs no especificados en la propiedad //deny//. - **//deny//**: lista separada por comas o espacios de expresiones regulares para indicar que nombres de HOST **no** pueden acceder a la aplicación. - **//access-lock//**: tipo de bloqueo de acceso, que puede ser: //MAINTENANCE// o //AUTHORIZATION//. Por defecto es //MAINTENANCE//. - **//access-lock-page//**: el //viewId// la página de bloqueo. Por defecto es: ///fundeweb/accessLock.xhtml//. ===== TimeIntervalLockAccessControlFilter ===== Este filtro permite bloquear el acceso a la aplicación durante un periodo de tiempo. Para poder utilizar el filtro, tendremos que realizar los siguientes pasos: 1.- Hay que añadir el siguiente espacio de nombres en el elemento raíz //// del fichero //components.xml// (donde están definidos el resto de espacio de nombres): Para FundeWeb 1.2.x: xmlns:fdw-control="http://www.umu.org/atica/seam/web/control"\\ Para FundeWeb 2.0.x: xmlns:fdw-control="http://www.um.es/atica/seam/web/control"\\ 2.- En la propiedad _xsi:schemaLocation_ añadimos lo siguiente: Para FundeWeb 1.2.x: http://www.umu.org/atica/seam/web/control http://www.umu.org/atica/seam/web/control-1.5.0.xsd\\ Para FundeWeb 2.0.x: http://www.um.es/atica/seam/web/control http://www.um.es/atica/seam/web/control-2.0.0.xsd\\ 3.- Añadir la configuración del filtro: ... Las propiedades importantes son las siguientes: - **//disabled//**: indica si el filtro esta desactivado (con valor //true//) o activado (con valor //false//). Por defecto el filtro esta desactivado. - **//start//**: instante de inicio del intervalo de bloqueo de acceso a la aplicación. Tiene que cumplir el patrón dd/MM/yyyy HH:mm:ss. - **//end//**: instante de fin del intervalo de bloqueo de acceso a la aplicación. Tiene que cumplir el patrón dd/MM/yyyy HH:mm:ss. - **//access-lock//**: tipo de bloqueo de acceso, que puede ser: //MAINTENANCE// o //AUTHORIZATION//. Por defecto es //MAINTENANCE//. - **//access-lock-page//**: el //viewId// la página de bloqueo. Por defecto es: ///fundeweb/accessLock.xhtml//. ===== Tipos de Bloque de Acceso ===== Los tipos de bloqueo de acceso a la aplicación son: - **//MAINTENANCE//**: indica que la aplicación esta en proceso de modificación o mantenimiento. - **//AUTHORIZATION//**: indica que no se tienen permisos de acceso a la aplicación. Veamos la configuración de la página de bloqueo para el bloqueo de autorización: {{ :fdw2.0:fundeweb2.0:gt:gt-filtros-bloqueo-acceso:bloqueo-autorizacion.jpg?800 | Página de Bloqueo de Acceso por Autorización}} Veamos la configuración de la página de bloqueo para el bloqueo de autorización: {{ :fdw2.0:fundeweb2.0:gt:gt-filtros-bloqueo-acceso:bloqueo-mantenimiento.jpg?800 | Página de Bloqueo de Acceso por Mantenimiento}} ===== Herramientas ===== Para poder testear las expresiones regulares, tenemos varias webs que lo permiten online: [[http://www.regexplanet.com/advanced/java/index.html|Regular Expression Test Page for Java]] [[http://www.ocpsoft.org/tutorials/regular-expressions/java-visual-regex-tester/|Visual Regex Tester]] [[http://myregexp.com|Online Regex Tester]] [[http://java-regex-tester.appspot.com|Java Regex Tester]] ===== Bibliografia ===== [[https://docs.oracle.com/javase/tutorial/essential/regex/|Lesson: Regular Expressions]] [[http://www.vogella.com/tutorials/JavaRegularExpressions/article.html|Java Regex - Tutorial]] [[http://www.tutorialspoint.com/java/java_regular_expressions.htm|Java - Regular Expressions]] [[http://www.ocpsoft.org/opensource/guide-to-regular-expressions-in-java-part-1/|Guide to Regular Expressions in Java (Part 1)]] [[http://www.ocpsoft.org/opensource/guide-to-regular-expressions-in-java-part-2/|(Part 2)]] [[http://www.regular-expressions.info/java.html|Using Regular Expressions in Java]] [[http://www.javatpoint.com/java-regex|Java Regex]] [[http://tutorials.jenkov.com/java-regex/index.html|Java Regex - Java Regular Expressions ]] ---- --- //[[juanmiguelbg@um.es|JUAN MIGUEL BERNAL GONZALEZ]] 2015/09/03 12:20//