web-applications - metatags - meta name keywords
Haga coincidir patrón de URL de embarcadero con solo el directorio raíz (1)
Aquí está la respuesta para ti:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>Private Page</web-resource-name>
<url-pattern>/</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>moderator</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Public page</web-resource-name>
<url-pattern>/test/*</url-pattern>
</web-resource-collection>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Test Realm</realm-name>
</login-config>
</web-app>
En esta configuración, el directorio raíz está protegido con contraseña y el directorio /test/...
no. Creo que esto es lo que estás pidiendo.
Esta configuración se prueba en Tomcat 7+ y en un nuevo proyecto creado desde el principio en NetBeans (puedo enviarle un correo electrónico a toda la fuente si la necesita).
Este es el resultado:
Solo me gustaría proteger con contraseña el directorio raíz en mi ruta de contexto para Jetty WebApp. Mi ruta de contexto es / MyApp, por lo que me gustaría solicitar una contraseña para acceder:
http://localhost:8080/MyApp
PERO NO por:
http://localhost:8080/MyApp/cometd
Mi configuración actual es inferior (preste atención al patrón url):
<security-constraint>
<web-resource-collection>
<web-resource-name>Private Page</web-resource-name>
<url-pattern>/</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>moderator</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Test Realm</realm-name>
</login-config>
Esperaría que esto funcione solo por la naturaleza de cómo / y / * trabajo en general. También he visto este recurso, que creo que sugiere que esto debería funcionar: http://www.coderanch.com/t/364782/Servlets/java/there-key-difference-between-url
Sin embargo, para mi caso, los patrones de url:
<url-pattern>/</url-pattern>
y
<url-pattern>/*</url-pattern>
parecen estar actuando exactamente igual: ambos
http://localhost:8080/MyApp
y
http://localhost:8080/MyApp/cometd
Ambos están protegidos con contraseña.
Por supuesto, si cambio a / nothingisherehere, solo como una prueba de cordura, nada está protegido con contraseña, excepto para / MyApp / nothingishere
¿Alguien sabe cómo proteger solo el directorio raíz para los servlets web?