hat eap java http jboss server

java - eap - jboss wikipedia



¿Cómo deshabilitar el método HTTP OPTIONS en JBoss? (4)

Opción 1 - Usar RewriteValve (se puede aplicar globalmente)

Puede usar RewriteValve para deshabilitar los métodos http. Eche un vistazo a la documentación . Necesitará una directiva RewriteCond y una RewriteRule.

En su directiva RewriteCond puede especificar todos los métodos con el uso de la variable de servidor REQUEST_METHOD, por ejemplo:

RewriteCond %{REQUEST_METHOD} ^(PUT|DELETE|TRACE|OPTIONS)$ [NC]

entonces su RewriteRule puede marcar ésos como prohibidos (devuelve inmediatamente una respuesta HTTP de 403 (PROHIBIDO)), por ejemplo:

RewriteRule .* - [F]

En el caso de Jboss EAP 6

<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false"> <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> <virtual-server name="default-host" enable-welcome-root="true"> <rewrite pattern=".*" substitution="-" flags="F"> <condition test="%{REQUEST_METHOD}" pattern="^(PUT|DELETE|TRACE|OPTIONS)$" flags="NC" /> </rewrite> </virtual-server> </subsystem>

Aparte de esto, como se dijo en la respuesta anterior, se puede hacer a través de web.xml por guerra.

Para verificar el uso anterior

curl -v -X TRACE http://hostname:port/appContext curl -v -X DELETE http://hostname:port/appContex

Estoy tratando de deshabilitar el método JBOSS HTTP OPTIONS. Usando la siguiente sintaxis en el web.xml en JBoss, puedo deshabilitar todo el método http excepto OPTIONS. ¿Hay alguna manera de deshabilitar con éxito las OPCIONES de método http?

haga clic aquí para captura de pantalla

<security-constraint> <web-resource-collection> <web-resource-name>Restricted</web-resource-name> <description>Declarative security tests</description> <url-pattern>/EVE/*</url-pattern> <http-method>PUT</http-method> <http-method>DELETE</http-method> <http-method>OPTIONS</http-method> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint> <description>Only authenticated users can access secure content</description> <role-name>AuthorizedUser</role-name> </auth-constraint> <user-data-constraint> <description>no description</description> <transport-guarantee>NONE</transport-guarantee> </user-data-constraint> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>Restricted 2</web-resource-name> <description>Declarative security tests</description> <url-pattern>/*</url-pattern> <http-method>PUT</http-method> <http-method>DELETE</http-method> <http-method>OPTIONS</http-method> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint> <description>Only authenticated users can access secure content</description> <role-name>AuthorizedUser</role-name> </auth-constraint> <user-data-constraint> <description>no description</description> <transport-guarantee>NONE</transport-guarantee> </user-data-constraint> </security-constraint>


Sugeriría usar mod_rewrite. Es más limpio


Usando la respuesta de Ravikant Sharma (gracias)

encontrar en server.xml (en mi caso /jboss-5.1.0.GA/server/default/deploy/jbossweb.sar)

dentro de las etiquetas <Engine> y <Host> puede ver una etiqueta <valve>, debe insertar una nueva etiqueta de válvula como esta

<Valve className = "org.jboss.web.rewrite.RewriteValve" />

luego en la carpeta config en mi caso /jboss-5.1.0.GA/server/default/conf/

ver si tiene las siguientes rutas y archivos (si no necesita crearlos)

/jboss.web/localhost/rewrite.properties

dentro del archivo debes escribir

RewriteCond% {REQUEST_METHOD} ^ (OPTIONS) $ [NC]

RewriteRule. * - [F]

entonces antes de la configuración ves:

curl -i -X ​​OPCIONES http://192.168.133.1:8080 HTTP / 1.1 200 OK Servidor: Apache-Coyote / 1.1 X-Powered-By: Servlet 2.5; JBoss-5.0 / JBossWeb-2.1 Permitir: OBTENER, DIRIGIR, PUBLICAR, PONER, ELIMINAR, RASTREAR, OPCIONES Longitud del contenido: 0 Fecha: miércoles, 28 de diciembre de 2016, 01:13:37 GMT

después de la configuración, verá

curl -i -X ​​OPCIONES http://192.168.133.1:8080 HTTP / 1.1 403 Servidor prohibido: Apache-Coyote / 1.1 Codificación de transferencia: fragmentada Fecha: miércoles, 28 de diciembre de 2016, 01:19:34 GMT

;)


here are the following ways to limit HTTP methods in a web application: 1. Adding security constraints in web.xml <security-constraint> <web-resource-collection> <web-resource-name>NoAccess</web-resource-name> <url-pattern>/*</url-pattern> <http-method>DELETE</http-method> <http-method>TRACE</http-method> <http-method>OPTIONS</http-method> </web-resource-collection> <auth-constraint/> </security-constraint> Here DELETE, TRACE and OPTIONS are restricted for all urls. curl -kvv -X DELETE <url> will give 403 Forbidden 2. Using Rewrite rules in domain.xml <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false"> <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> <virtual-server name="default-host" enable-welcome-root="true"> <rewrite pattern=".*" substitution="-" flags="F"> <condition test="%{REQUEST_METHOD}" pattern="^(DELETE|TRACE|OPTIONS)$" flags="NC" /> </rewrite> </virtual-server> </subsystem> 3. Using mod_rewrite in httpd RewriteEngine On RewriteCond %{REQUEST_METHOD} ^(DELETE|TRACE|OPTIONS)$ [NC] RewriteRule .* - [F]