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
.