Note

The online documentation is produced by a web publishing technology created by us to read the documents origins in OpenOffice Writer (ODT) and Microsoft Word (docx) formats and produces native web and PDF versions. In this way we maintain Louder project documentation update and in sync on each of its formats.
Select a Language:
Componente Security
Introducción
El objetivo de este componente es ofrecer funcionalidades varias de seguridad a aplicaciones web empresariales. Una característica importante de este componente es un Firewall que permite definir reglas de acceso estilo firewall a una aplicación.
Subcomponente SecurityFirewall
Introducción
El objetivo del subcomponente SecurityFirewall es el de permitir al desarrollador analizar el entorno desde el cual se accede a un determinado punto de la aplicación y validar si se permite el acceso ó no.

Las reglas se definen en un archivo XML en el orden de prioridad como deben ser evaluadas. Un ejemplo es el siguiente documento XML:
Ejemplo: Definición XML de reglas para SecurityFirewall
<?xml version="1.0" encoding="UTF-8"?>
<firewallRules>
     <hostTraslation>
          <hostname>localhost</hostname>
          <address>::1</address>
     </hostTraslation>
     <rule>
          <source>localhost</source>
          <controller>products</controller>
          <action>*</action>
          <target>reject</target>
     </rule>
     <rule>
          <source>192.168.10.120</source>
          <controller>admin</controller>
          <action>*</action>
          <target>reject</target>
     </rule>
     <rule>
          <source>localhost</source>
          <controller>*</controller>
          <action>*</action>
          <target>accept</target>
     </rule>
</firewallRules>

El nodo raiz firewallRules abre el documento. Los nodos hostTraslation contienen traducciones predefinidas para nombres-de-maquina/direcciones-ip, así es posible indicarle al firewall que un mismo nombre de maquina tiene varias direcciones IP asignadas. En el ejemplo la dirección ::1 del loopback de una maquina Mac OS X es agregada como localhost.

Los nodos rule permiten definir las reglas del firewall. Por obligación estos nodos deben tener un atributo target que indica que el tipo de acción a ejecutar cuando se cumple la regla.
Como se evaluan las reglas
Las reglas son evaluadas en el orden en el que se definieron en el archivo XML. Si una regla cumple con las condiciones del entorno de la petición entonces las demás reglas no son evaluadas.

Es necesario tener en cuenta el orden en el que se definen para evitar que una regla sobreescriba a otras y no se logre el objetivo esperado.
Tipos de Atributos de una Regla
Una regla del SecurityFirewall puede tener los siguientes tipos de atributos:
Tabla: Tipos de atributos de una regla en SecurityFirewall
Nombre
Descripción
sourceEl origen de la petición. Puede ser un nombre de maquina en la red, un nombre de dominio ó una dirección IP. Cuando se establece un nombre de maquina se utilizan las capacidades de resolución de nombres que tenga la maquina actual para obtener las direcciones IP correspondientes. La dirección IP del cliente se obtiene incluso cuando el acceso se realiza mediante un proxy transparente. Las IPs no pueden ser obtenidas cuando se usa un proxy anónimo.
macLa NIC de la tarjeta de red puede ser obtenida cuando la aplicación es ejecutada en sistemas Linux/Unix y cuando los clientes se encuentran en la mismo rango de red del servidor.
controllerEl nombre del controlador de aplicación ó servicio web en la aplicación activa que se está tratando de acceder. Se puede usar * como comodín que coincida con cualquier controlador.
actionEl nombre de la acción en el controlador solicitado que se está tratando de acceder. Se puede usar * como comodín que coincida con cualquier nombre de acción.
isAjaxRequestedIndica si la petición se está tratando de hacer usando AJAX.
isSoapRequestedIndica si la petición se está tratando de hacer desde un cliente Soap.
isSecureIndica si la conexión se realiza usando una conexión segura.
isFlashRequestedIndica si la conexión se realiza desde un plug-in de Adobe Flash.
hasHeaderSi la petición contiene un determinado encabezado. Múltiples encabezados pueden definirse separandolos por pipes (|).
methodPermite indicar el tipo de método HTTP utilizado para solicitar la petición.