Tengo un sitio web impulsado por Jetty.Jetty webserver security
Me gustaría que la contraseña del sitio esté protegida (o similar).
Hay una forma de hacerlo por configuración solamente (sin tocar el código).
Toda ayuda muy apreciada.
Dan
Tengo un sitio web impulsado por Jetty.Jetty webserver security
Me gustaría que la contraseña del sitio esté protegida (o similar).
Hay una forma de hacerlo por configuración solamente (sin tocar el código).
Toda ayuda muy apreciada.
Dan
Una forma de hacerlo es mediante la configuración de la autenticación básica para su aplicación. Solo deberías hacer esto si usas ssl, pero entonces iniciar sesión sin ssl no es seguro de todos modos, así que supongo que ya lo tienes.
Hay muchas maneras de hacer esto en Jetty, y este es solo uno de ellos.
Primero, debe definir un dominio donde defina todos los usuarios, contraseñas, roles, etc. La configuración predeterminada en Jetty ya define un dominio llamado "Reino de prueba". El dominio se define en el archivo /etc/jetty-testrealm.xml. Puede usar este reino o crear uno nuevo. Si define una nueva, puede definirla en el mismo archivo o en un archivo separado. Si crea un archivo separado, recuerde incluir ese archivo en start.ini.
/etc/jetty-testrealm.xml tiene una referencia a /etc/realm.properties. Aquí es donde creas tus usuarios. Si solo quiere usar el reino de prueba, recuerde eliminar los usuarios predeterminados que ya están definidos en realm.properties.
También hay otro tipo de implementaciones de reino que utilizan, por ejemplo, una base de datos para datos de usuario.
A continuación, abra el archivo /etc/webdefault.xml y añadir algo como esto en la parte inferior:
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern> <!--The url that should be protected -->
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name> <!--The required roles for accessing the url -->
<role-name>user</role-name>
<role-name>moderator</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method> <!-- Use http basic authentication -->
<realm-name>Test Realm</realm-name> <!-- Users are defined in this realm -->
</login-config>
También debe incluir defaultDescriptor, a través de su aplicación. archivo de contexto:
me encontré con el ejemplo que la distribución embarcadero ofrece muy útil. Para usar autenticación básica usando cuentas de usuario de un archivo de texto, busque en su directorio {jetty.home}/demo-base/etc. Copie estos dos archivos en su carpeta {jetty.base}/etc: realm.properties, test-realm.xml
Jetty no cargará estos archivos a menos que así lo indique. Esto puede hacerse añadiendo el siguiente texto a la start.ini o cualquier archivo * .ini en su {} jetty.base carpeta /start.d:
# Create and configure the test realm
etc/test-realm.xml
jetty.demo.realm=etc/realm.properties
Por último, crear un archivo web.xml (si no hecho ya) e inserte el ejemplo proporcionado por @ sstendal/@ Torsten en su respuesta anterior. Utiliza el mismo nombre real que el ejemplo de base de demostración de la distribución de embarcadero, por lo que debería funcionar. Reinicie el muelle e intente acceder a cualquiera de sus recursos web. Su navegador o cliente debe pedirle credenciales. Usuario usuario/contraseña, por ejemplo.
Todo está en la documentación (http://wiki.eclipse.org/Jetty). Lamentablemente, los documentos están sorprendentemente mal organizados. – skaffman