es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo lograr un nivel de autenticación que me permita pasar “Se requiere una autenticación completa para acceder a este recurso”.

Estoy tratando de depurar una configuración de Resque en una aplicación heredada, y encontré que hay una ruta para resque en /hidden/resque que sería útil acceder, pero no puedo acceder a la ruta. Me pregunto qué debo hacer … Cuando intento acceder a esa ruta obtengo un HTTP 500 debido a este error que se está lanzando:

Symfony\Component\Security\Core\Exception\InsufficientAuthenticationException: Se requiere autenticación completa para acceder a este recurso.

He intentado acceder tanto como una página web (después de autenticarme como un administrador en una ruta diferente) y usando curl -H 'Authorization: Basic 9339034147964aebec6716c0110311d1' 'https://web.mysite/hidden/resque' -v. Sin éxito.

Entonces, ¿qué constituye una “autenticación completa”? Ya estoy iniciado sesión como usuario administrador en una de las otras rutas. ¿Necesitaría agregar algo más a la configuración a continuación? Esto no ha sido configurado por mí, por lo que no sabría si alguna vez funcionó.

app/config/routing.yml

ResqueBundle:
    resource: "@ResqueBundle/Resources/config/routing.xml"
    prefix:   /hidden/resque

app/config/security.yml

access_control:
  - { path: ^/hidden, roles: ROLE_ADMIN }

De acuerdo con la documentación:

IS_AUTHENTICATED_FULLY: Esto es similar a IS_AUTHENTICATED_REMEMBERED, pero más fuerte. Los usuarios que están conectados solo debido a una “cookie de recordar” tendrán IS_AUTHENTICATED_REMEMBERED pero no tendrán IS_AUTHENTICATED_FULLY.

¿Cómo puedo estar más “conectado” que usando una cookie? ¿Debo enviar una cabecera de autenticación básica con el nombre de usuario y la contraseña codificados en base64?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Depuración de la configuración de Resque en una aplicación heredada

    Si estás intentando acceder a una ruta para Resque en /hidden/resque, pero no puedes acceder a la ruta, es posible que recibas un HTTP 500 debido al error “Symfony\Component\Security\Core\Exception\InsufficientAuthenticationException: Se requiere autenticación completa para acceder a este recurso”. Incluso después de autenticarte como usuario administrador en una ruta diferente o usando el comando curl -H, es posible que no puedas acceder a la ruta.

    Al observar el archivo app/config/security.yml, puedes ver que el access_control está configurado para todas las rutas que comienzan con /hidden y está restringido a ROLE_ADMIN. Sin embargo, eso puede no ser suficiente y es posible que necesites una autenticación completa.

    Según la documentación de Symfony, IS_AUTHENTICATED_FULLY es más fuerte que IS_AUTHENTICATED_REMEMBERED. Por lo tanto, los usuarios que utilizan una “cookie de recordar sesión” tendrán IS_AUTHENTICATED_REMEMBERED pero no IS_AUTHENTICATED_FULLY. Para acceder a la ruta, es posible que necesites estar “más autenticado” que solo con una cookie.

    Puedes intentar enviar una cabecera de autenticación básica con un nombre de usuario y contraseña codificados en base64. Además, verifica los archivos de configuración y asegúrate de que no haya nada que deba agregarse para permitir el acceso a la ruta. Como se trata de una aplicación heredada, es posible que no la hayas configurado tú y que necesites indagar un poco más en el archivo y en las discusiones anteriores con el desarrollador anterior para depurar la configuración de Resque.

Comments are closed.