Pregunta

Ya he creado un archivo de base de datos de usuario con el comando htpasswd de Apache. Este archivo ahora es utilizado por varias otras aplicaciones como Apache y la subversión.

Los usuarios se crean en este aspecto:

htpasswd /path/to/users.htpasswd peter

Este archivo de usuario es global, no por directorio.

¿Cómo puedo hacer uso de Tomcat 6 de este mismo archivo como un reino de seguridad?

¿Fue útil?

Solución

Hay dos opciones:

  1. Usar Apache como interfaz para el gato (usando mod_jk o mod_proxy_ajp) y el Apache hacer la autenticación. Puede encontrar más detalles sobre cómo hacerlo aquí

  2. Si desea que el Tomcat para hacer la autenticación, entonces es necesario el uso del ot algo más que el archivo htpasswd. Hay 4 maneras de ahorrar credenciales de los usuarios - utilizando la base de datos, JNDI / LDAP, un archivo XML o un proveedor de JAAS. Usted puede leer acerca de todas las opciones en el configuración HOW-TO .

Otros consejos

Los más similar a la htpasswd puede ser el MemoryRealm . Yo he tenido problemas para encontrar un ejemplo sencillo de cómo usarlo, así que voy a publicar un código de ejemplo fácil aquí:

  1. Configurar un papel, nombre de usuario y contraseña en Tomcat-users.xml

  2. Su web.xml debe contener algo como:

       <security-constraint>
         <web-resource-collection>
          <web-resource-name> 
            My Protected WebSite 
          </web-resource-name>
          <url-pattern> /* </url-pattern>
          <http-method> GET </http-method>
          <http-method> POST </http-method>
        </web-resource-collection>
        <auth-constraint>
        <!-- the same like in your tomcat-users.conf file -->
          <role-name> test </role-name>
        </auth-constraint>
      </security-constraint>
       <login-config>
        <auth-method> BASIC </auth-method>
        <realm-name>  Basic Authentication </realm-name>
      </login-config>
      <security-role>
        <description> Test role </description>
        <role-name> test </role-name>
      </security-role>
    
  3. Agregue esto a su archivo server.xml:

    <Realm className="org.apache.catalina.realm.MemoryRealm"></Realm>
    

Para asegurar el acceso a la aplicación de web Tomcat, puede implementar su sencilla restricción de seguridad (por ejemplo, en /var/lib/tomcat7/webapps/*/WEB-INF/web.xml) de la siguiente manera (sólo añadir que antes de poner fin a </web-app>):

<!-- This security constraint protects your webapp interface. -->
<login-config>
  <!-- Define the Login Configuration -->
  <auth-method>BASIC</auth-method>
  <realm-name>Webapp</realm-name>
</login-config>
<security-constraint>
  <web-resource-collection>
    <web-resource-name>Admin</web-resource-name>
    <url-pattern>/*</url-pattern>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
  </web-resource-collection>
  <auth-constraint>
    <role-name>*</role-name>
  </auth-constraint>
  <!-- Specifying a Secure Connection -->
  <user-data-constraint>
    <!-- transport-guarantee can be CONFIDENTIAL (forced SSL), INTEGRAL, or NONE -->
    <transport-guarantee>NONE</transport-guarantee>
  </user-data-constraint>
</security-constraint>
<!-- Authorization, see: tomcat-users.xml --> 
<security-role>
  <role-name>*</role-name>
</security-role>
  

El elemento login-config contiene el elemento auth-method, que especifica el método de autenticación que utilizamos, que es BASIC. El elemento security-constraint contiene 3 elementos: web-resource-collection, auth-constraint, y user-data-constraint. El web-resource-colección especifica las partes de nuestra aplicación que requieren autenticación. El /* indica que toda la aplicación requiere autenticación. El auth-limitación especifica el papel que un usuario tiene que tener con el fin de acceder a los recursos protegidos. el transporte de garantía del usuario-data-restricción se puede NONE, CONFIDENTIAL o INTEGRAL. Hemos establecido a NONE, lo que significa que volver a dirigir a SSL no es necesario cuando se trata de golpear al recurso protegido.

También asegúrese de que la línea He:

<Realm className="org.apache.catalina.realm.MemoryRealm" />

dentro de su conf/server.xml (sección Engine).

Si no ha cambiado ningún archivo de configuración, por favor examinar la conf/tomcat-users.xml archivo en su instalación (locate tomcat-users.xml). Ese archivo debe contener las credenciales que le permite utilizar Tomcat aplicación web.

Por ejemplo, para agregar la función de gestor de interfaz gráfica de usuario a un usuario llamado tomcat con una contraseña de s3cret, añada lo siguiente al archivo de configuración que aparece arriba:

<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>

A continuación, puede acceder a su gestor de aplicaciones web de /manager/html (por ejemplo, volver a cargar después de los cambios de configuración).

Leer más: App Manager HOW-TO <. / p>

A continuación, reiniciar el Tomcat y para acceder a su aplicación web, debe pedir las credenciales correctas.

Vea también:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top