java tomcat struts2 web.xml security-constraint

java - Restricción de seguridad de la lista blanca en web.xml



tomcat struts2 (3)

Intentaría lo siguiente:

<security-constraint> <web-resource-collection> <url-pattern>/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <!-- no auth-constraint tag here --> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>restricted methods</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <auth-constraint/> </security-constraint>

La primera security-constraint no tiene ninguna auth-constraint , por lo que los métodos GET y POST están disponibles para cualquier persona sin iniciar sesión. El segundo restringe otros métodos http para todos. (No lo he probado).

Estoy usando Tomcat para mi aplicación Struts2. El web.xml tiene ciertas entradas como se muestra a continuación:

<security-constraint> <web-resource-collection> <web-resource-name>restricted methods</web-resource-name> <url-pattern>/*</url-pattern> <http-method>PUT</http-method> <http-method>DELETE</http-method> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint /> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>no_access</web-resource-name> <url-pattern>/jsp/*</url-pattern> </web-resource-collection> <auth-constraint/> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>no_access</web-resource-name> <url-pattern>/myrrunner/*</url-pattern> </web-resource-collection> <auth-constraint/> </security-constraint>

¿Cómo puedo cambiar las partes anteriores de la lista negra para usar solo las partes de la lista blanca? Por ejemplo, en lugar de DELTE lista negra los métodos PUT , DELTE http, necesito la lista blanca de otros métodos, pero no estoy seguro de la sintaxis de la lista blanca y de qué métodos se incluyen en la lista blanca. .

Para mi fragmento de web.xml anterior, apreciaré si alguien me puede proporcionar una parte del contador de whitelisitng para el xml anterior.

EDITAR: También, ¿cómo realmente verificaría si la solución funciona o no?

Gracias


Nueva característica de Java EE 6 que simplifica la configuración de seguridad de las aplicaciones. Ahora puede incluir métodos HTTP permitidos en la lista blanca o en la lista negra en su web.xml:

<security-constraint> <web-resource-collection> <web-resource-name>Disable unneeded HTTP methods by 403 Forbidden them</web-resource-name> <url-pattern>*</url-pattern> <http-method-omission>GET</http-method-omission> <http-method-omission>HEAD</http-method-omission> <http-method-omission>POST</http-method-omission> </web-resource-collection> <auth-constraint /> </security-constraint>

Referencia: https://blogs.oracle.com/nithya/entry/new_security_features_in_glassfish


Un pequeño ajuste a la respuesta aceptada (establecer el url-pattern en la segunda security-constraint para asignarlo al servlet predeterminado "/" ) funciona para JBoss y Weblogic pero no para Websphere:

<security-constraint> <web-resource-collection> <web-resource-name>Allowed methods</web-resource-name> <url-pattern>/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <!-- no auth-constraint tag here --> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>Restricted methods</web-resource-name> <url-pattern>/</url-pattern> </web-resource-collection> <auth-constraint /> </security-constraint>

Con la configuración de restricciones de seguridad anterior, no estoy seguro de por qué Websphere permite todos los métodos HTTP, mientras que JBoss y Weblogic solo permiten GET y POST .