2010-12-09 19 views
7

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?

Respuesta

4

creo que necesita lo siguiente en su web.xml

<security-role> 
    <role-name>myrole</role-name> 
</security-role> 

con el fin de definir el papel. Además, creo que deberá hacer referencia al dominio en el login-config

<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>MyUserDatabase</realm-name> 
</login-config> 

o similar.

+0

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? –

+0

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

+0

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 –

0

Eche un vistazo al archivo tomcat-users.xml en su directorio de configuración de Tomcat que define las funciones de seguridad como un ejemplo de lo que necesita.

Además, consulte el siguiente article para obtener orientación.

Cuestiones relacionadas