Los descriptores de las restricciones de seguridad de una aplicación WEB son detallados en el web.xml (descriptor de despliegue).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<!-- SECURITY CONSTRAINT --> <security-constraint> <web-resource-collection> <web-resource-name>RestriccionesWEB</web-resource-name> <url-pattern>/miAplicacion</url-pattern> <http-method>GET</http-method> <!-- <http-method-omission>GET</http-method-omission> --> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <role-name>manager</role-name> </auth-constraint> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint> |
Están formados por:
1) Una colección de recursos WEB (patrones URL y metodos HTTP).
1 2 3 4 5 6 7 |
<web-resource-collection> <web-resource-name>RestriccionesWEB</web-resource-name> <url-pattern>/miAplicacion</url-pattern> <http-method>GET</http-method> <!-- <http-method-omission>GET</http-method-omission>--> <http-method>POST</http-method> </web-resource-collection> |
<url-pattern>: indica el contexto dentro de la aplicación web que se verá afectada por la restricción.
<http-method>: indica los métodos que se ven afectados por la restricción.
<http-method-omission>: Indica que metodos HTTP aplican la restricción excluyendo a todos los demás.
2) Restricción de acceso por roles:
1 2 3 |
<auth-constraint> <role-name>manager</role-name> </auth-constraint> |
<role-name>: Nombre del rol al que afecta la restricción.
3) Restricciones sobre los datos de usuario y su transporte.
1 2 3 |
<user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> |
<transport-guarantee>: Define la protección de datos que lleva el transporte.
- CONFIDENTIAL: all user data must be encrypted by the transport (typically using SSL/TLS).
- NONE: no protection of user data must be performed by the transport.
Ej de configuraciones:
1) Acceso público a parte de una aplicación (sin restricción de acceso): recursos que son de ámbito publico en la WEB.
1 2 3 4 5 6 7 |
<security-constraint> <display-name>Public pages restriction</display-name> <web-resource-collection> <web-resource-name>Public pages</web-resource-name> <url-pattern>/public/*</url-pattern> </web-resource-collection> </security-constraint> |
2) Restricción de Acceso por ROL: Operaciones sobre recursos que sólo son accesibles a los usuarios de un rol determinado.
1 2 3 4 5 6 7 8 9 10 |
<security-constraint> <display-name>Protected pages restriction</display-name> <web-resource-collection> <web-resource-name>Main pages</web-resource-name> <url-pattern>/protected/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>member</role-name> </auth-constraint> </security-constraint> |
3) Denegar el acceso http a todos los metodos salvo al GET y POST.
1 2 3 4 5 6 7 8 9 |
<security-constraint> <display-name>Deny all HTTP methods except GET and POST</display-name> <web-resource-collection> <url-pattern>/company/*</url-pattern> <http-method-omission>GET</http-method-omission> <http-method-omission>POST</http-method-omission> </web-resource-collection> <auth-constraint/> </security-constraint> |
NOTA: Métodos del protocolo HTTP: HEAD, GET, POST, PUT, DELETE y TRACE.