entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Configuración Apache Login mediante Petición POST

Buenas, estoy desarrollando una aplicación android en la que necesito poder acceder a un servidor http mediante apache, con un usuario y una contraseña a través de una petición POST.
Cada usuario debe de poder acceder a su zona privada con su usuario y contraseña.
El problema está en que tengo que hacerlo mediante un post hacia apache. Ya que en el WebView de Android no me sale el recuadro de Login.

En el archivo httpd-userdir tengo lo siguiente:

UserDir "Documents\My Website"
<Directory "C:\Users*\Documents\My Website">
AuthType Basic
AuthName "Zona de usuario privada"
AuthUserFile "C:\Program Files (x86)\PostgreSQL\EnterpriseDB-ApachePHP\apache\passwords\passwords"
Options Indexes FollowSymLinks
AllowOverride AuthConfig
<Limit POST>
require all granted
</Limit>
</Directory>

El caso es que cuando meto todo el tema de la autenticación en la directiva Limit POST puedo acceder al directorio aún sin poner un login correcto, y si lo saco del Limit, la página me devuelve Forbidden.

Espero que me podáis ayudar. Un saludo y gracias.

1 Respuesta

1voto

Leonardo-Tadei Puntos227320

Hola jesfer92,

debés tener las directivas en el archivo .htaccess del directorio protegido. Podría ser también que la configuración de tu Apache no permitir sobreescritura de alguna directiva o que el propio Apache no tenga el módulo user_auth que es el encargado de esta tarea.

Un ejemplo de archivo .htaccess para limitar el acceso a usuarios que no tengan usuario y clave es:

AuthType Basic
AuthName "Tu Sitio"
AuthUserFile /ruta/absoluta/al/archivo/de/passwords
<LIMIT GET POST>    
    require valid-user
</LIMIT>

La petición puede ser POST o GET, pero vos tenés que limitar ambos tipos de petición, para que siempre se pida el login. El login será siempre POST porque el viejo método GET de poner en el URL http://usuario:[email protected] ya no está soportado por los navegadores por razonas de seguridad.

No estaría demás revisar también si el espacio en la ruta no afecta y por ejemplo hay que escaparlos para que sean bien interpretados.

Si el problema es que Apache no permite sobreescribir directivas o no tiene el módulo de autentificación, deberás modificar la configuración de Apache.

Para probar y descartar que no sea algo de tu aplicación, probá que abriendo el URL con un navegador sí se pida el usuario y clave.

Saludos!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta