> Is the login mechanism relying on web application form based > submission, or relying on web server HTTP Basic authentication. If the > latter, you must enable the directive: > > WSGIPassAuthorization On > > in Apache configuration for mod_wsgi, else the HTTP Basic auth > information isn't passed through to a WSGI application. > > Graham >
The login mechanism is web application form based submission, done in flex, which is embedded in a django page, which is served by mod_wsgi. That is, I have a flex UI submitting username, raw_password through an AMF gateway. == myflex.mxml == private function handleLogin(username,raw_password):void { gatewayUrl = "https://www.mysite.com/main/gateway"; var serviceName:String = "authService"; var serviceFactory:ServiceFactory = ServiceFactory.getInstance (gatewayUrl); var service:RemotingService = serviceFactory.getService(serviceName); var pc:PendingCall = service.authenticateVisitor(your_login, raw_password); // ties to django views.py method } == views.py == def authenticateVisitor(request, this_email, raw_password): if request.user.is_authenticated() == True return "Already authenticated" # <--- This return statement is never reached, even if this method is called twice this_user = auth.authenticate(email=this_email,password=raw_password) # using custom EmailBackend if this_user is not None: auth.login(request,this_user) return True else: return False -R On 11/1/07, Graham Dumpleton <[EMAIL PROTECTED]> wrote: > > > > > On Oct 30, 9:22 pm, "Tiger Uppercut" <[EMAIL PROTECTED]> wrote: > > Hi, > > > > I wasn't sure whether this was a djangoAMF issue or django, so apologies > for > > the double posting. > > > > I'm having trouble using djangoAMF to communicate between my flex UI and > my > > django site, django_wrapper. > > > > - My django_wrapper is served at /main by mod_wsgi. > > > > * The django code base is in /usr/local/deploy/django_wrapper > > * The wsgi script is in > > /usr/local/deploy/django_wrapper/apache/django_wrapper.wsgi [as noted > onhttp://code.google.com/p/modwsgi/wiki/IntegrationWithDjango] > > > > - My flex site is served at /main/flex by django. The swf is stored at > > /var/www/mysite.com/static/myflex.swf > > > > - My djangoAMF gateway is set up at /main/gateway > > > > == urls.py == > > > > (r'^main/gateway/authService/authenticateVisitor', > > > > > 'django_wrapper.views.authAndLoginVisitor'), > > > (r'^main/gateway/calcService/calcSum', > > > 'django_wrapper.views.calculate'), > > > > == views.py == > > > > def authAndLoginVisitor(request,this_email,raw_password): > > > > > > > > > if request.user.is_authenticated() == True: > > > return "Already authenticated!" > > > > > this_user = auth.authenticate (email=this_email, > > > password=raw_password) # modified from django.contrib.auth to use > > > EmailBackend > > > if this_user is None: # could not find the > > > user > > > > > return False > > > else: # did find the user, now let's log him > > > in > > > > > auth.login(request,this_user) > > > return True > > > > > def calculate(request,arg1,arg2): > > > if request.user is not None: > > > print "In calculate, request.user is not none, it is = " + > str( > > > request.user) > > > if request.user.is_authenticated() == True: > > > return arg1 + arg2 > > > else: > > > return "Not authenticated!" > > > > The calculate function is called by the flex wrapper after > > authAndLoginVisitor is successfully called. > > > > == mysite.mxml == > > > > var gatewayUrl:String = "https://www.mysite.com/main/gateway/"; > > > > > > > > > var serviceName:String = "calcService"; > > > var serviceFactory:ServiceFactory = ServiceFactory.getInstance > > > (gatewayUrl); > > > var service:RemotingService = serviceFactory.getService(serviceName); > > > > > var pc:PendingCall = service.calcSum(2, 3); > > > pc.responder = new Responder(handleResult, handleError); > > > > However, the calculate function keeps thinking that the request is > issued by > > an anonymous user. > > > > I added debugging code to the login() method of auth/__init__.py > > > > [Tue Oct 30 01:32:31 2007] [error] User status just set > > [Tue Oct 30 01:32:31 2007] [error] request.session[_auth_user_id] = 11 > > [Tue Oct 30 01:32:31 2007] [error] request.session[_auth_user_backend] = > > django_wrapper.backends.EmailBackend > > [Tue Oct 30 01:32:31 2007] [error] Set request.user = testuser > > > > So the request.user is set once login is called. When I look in my > > auth_user table in the database, testuser's last_login is correctly set, > as > > well. > > > > However, now fast forward to the calculate call. Recall that I have a > flex > > UI, so the actual URL in the browser > windowwww.mysite.com/main/flexappears > > the same. > > > > When I call this function calculate request.user shows up as anonymous: > > [Tue Oct 30 02:52:36 2007] [error] In calculate, request.user is not > none, > > it is = AnonymousUser > > [Tue Oct 30 02:57:33 2007] [error] <WSGIRequest > > [Tue Oct 30 02:57:33 2007] [error] GET:<QueryDict: {}>, > > [Tue Oct 30 02:57:33 2007] [error] POST:<QueryDict: > > > {u'\\x00\\x03\\x00\\x00\\x00\\x01\\x00\\x13calcService.calcSum\\x00\\x02/[EMAIL > PROTECTED]@\\x08\\x00\\x00\\x00\\x00\\x00\\x00': > > [u'']}>, > > [Tue Oct 30 02:57:33 2007] [error] COOKIES:{'sessionid': > > 'c9726aabf90079d7cb9bbf549b6fc8c4'}, > > ... > > [Tue Oct 30 02:57:33 2007] [error] 'HTTP_COOKIE': > > 'sessionid=c9726aabf90079d7cb9bbf549b6fc8c4', > > > > Any ideas why the request keeps showing up without the user credentials > set > > in the login method earlier? > > > > Note that, if I apply a decorator, login_required, to calcService, and > login > > through the standard django html form, the request has my correct > > credentials. It's just when I try to do it "by hand", I'm running into > this > > problem. > > Is the login mechanism relying on web application form based > submission, or relying on web server HTTP Basic authentication. If the > latter, you must enable the directive: > > WSGIPassAuthorization On > > in Apache configuration for mod_wsgi, else the HTTP Basic auth > information isn't passed through to a WSGI application. > > Graham > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---