que estoy tratando de conseguir un reino de seguridad específico contexto en Tomcat 6.0, pero cuando comienzo Tomcat me sale el siguiente error Contexto:Configuración de un determinado reino Tomcat Seguridad
09-Dec-2010 16:12:40 org.apache.catalina.startup.ContextConfig validateSecurityRoles
INFO: WARNING: Security role name myrole used in an <auth-constraint> without being defined in a <security-role>
He creado la siguiente context.xml archivo:
<Context debug="0" reloadable="true">
<Resource name="MyUserDatabase"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/my-users.xml" />
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="MyUserDatabase"/>
</Context>
creado un archivo: mi-users.xml que he colocado bajo WEB-INF/conf que contiene lo siguiente:
<tomcat-users>
<role rolename="myrole"/>
<user username="test" password="changeit" roles="myrole" />
</tomcat-users>
añaden las siguientes líneas a mi archivo web.xml:
<web-app ...>
...
<security-constraint>
<web-resource-collection>
<web-resource-name>Entire Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>myrole</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
...
</web-app>
Pero parecen obtener el error donde pongo conf/mi-users.xml. ¿Debo especificar una RUTA explícita en la ruta o es relativa a alguna parte? Idealmente, me gustaría tenerlo empaquetado como parte de mi archivo WAR.
¿Alguna idea?
Hola, stjohnroe, eso sin duda ayudó y eliminó el error de inicio, sin embargo, parece que Tomcat ignora por completo mi archivo context.xml. Si agrego < role rolename = "myrole"/> < user username = "test" password = "changeit" roles = "myrole"/> a $ catalina.home/conf/tomcat-users.xml, entonces funciona, pero yo quiero un archivo personalizado de usuarios tomcat. ¿Alguna idea o no es posible tener dos reinos? –
Lo crearía como un reino separado, cambiando la ruta y las propiedades del resourceName/name, esto debería permitirle hacer referencia a él como un reino separado. – stjohnroe
Agregaría: no use la autenticación BASIC, consulte http://stackoverflow.com/questions/2180206/how-to-force-jetty-to-ask-for-credentials-after-invalidating-the-session –