[pyar] requests.get authentificacion en API DRF

David Arch daviddanielarch en gmail.com
Lun Abr 10 10:59:25 ART 2017


Apache te esta reconociendo el header, lo que pasa es que esta tratando de
hacer el auth contra una lista que deberías haber configurado en Apache, lo
que vos queres es que Apache no te haga el auth y deje pasar el request así
como viene a django para hacer la auth desde django.

Mi respuesta anterior suponía erroneamente que vos estabas usando mod_wsgi
para servir django. Si es así, tenes que agregarle el WSGIPassAuthorization
On en el archivo de conf donde tenes configurando el virtualhost.
http://modwsgi.readthedocs.io/en/develop/configuration-directives/WSGIPassAuthorization.html

Si estas usando algo mas que no sea mod_wsgi debe haber una solución
equivalente.


El 10 de abril de 2017, 9:41, Daniel <dmlistapython en gmail.com> escribió:

>
>
> El 10 de abril de 2017, 9:37, David Arch <daviddanielarch en gmail.com>
> escribió:
>
>> Apache maneja el BasicAuth por defecto, si queres que lo maneje Python
>> tenes que meterle un WSGIPassAuthorization en el config del virtual
>>
>
> y cómo debería declarar el request (headers) para que me lo reconozca
> apache?
>
>
>> host.
>>
>> 2017-04-10 8:45 GMT-03:00 Daniel <dmlistapython en gmail.com>:
>>
>>> Hola
>>>  Tengo una view de django rest framework
>>>
>>> -------------------------------------------------------
>>> class ComprobanteViewSet(viewsets.ViewSet):
>>>     authentication_classes = (SessionAuthentication, BasicAuthentication)
>>>     permission_classes = (IsAuthenticated,)
>>>     def list(self, request):
>>>         queryset = Comprobante.objects.all()
>>>         serializer = ComprobanteSerializer(queryset, many=True)
>>>         return Response(serializer.data)
>>>
>>>     def retrieve(self, request, pk=None):
>>>         queryset = Comprobante.objects.all()
>>>         comprobante = get_object_or_404(queryset, pk=pk)
>>>         serializer = ComprobanteSerializer(comprobante)
>>>         return Response(serializer.data)
>>>
>>> comprobante_list = ComprobanteViewSet.as_view({"get":"list"})
>>> comprobante_detail = ComprobanteViewSet.as_view({"get":"retrieve"})
>>>
>>> --------------------------------
>>>
>>> la que intento consumir con requests (desde otro sitio), pero no pasa la
>>> autenticación
>>>
>>> >>print requests.get("http://www.cyldistribuciones.com.ar/api/miscli
>>> entes", auth=("misusuario", "micontraseña"))
>>> <Response [403]>
>>>
>>> >>> s = requests.Session()
>>> >>> s.auth = ("misusuario", "micontraseña")
>>> >>> print s.get("http://www.cyldistribuciones.com.ar/api/misclientes")
>>> <Response [403]>
>>>
>>> Y no se porqué en desarrollo me andaba (bajo el server de desarrollo de
>>> django)
>>> en producción está bajo apache, así que estoy pensando que ahí debo
>>> apuntar
>>> pero no se por qué si me autentico usando django anda bien y puedo
>>> consumir bien la api
>>>
>>> ¿tienen alguna sugerencia para darme?
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Daniel Malisani
>>>
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>>
>>
>> --
>> Saludos.
>> David.
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
>
> --
> Daniel Malisani
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
Saludos.
David.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170410/797d0c75/attachment-0001.html>


Más información sobre la lista de distribución pyar