Hi, I'm writing a code for a media server and I want to serve static
files to authenticated users only. I check against Django's session
table (django_session) and that's ok (IMO) but in session_data there
isn't the userid and I need it for security reasons; So I sent you
what I'm doing so far and please, I'd really like that someone can
help me a bit if you please.

  Many thanks!


PS: Greetings from Chile.
-- 
http://www.advogato.org/person/mgonzalez/


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@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-developers
-~----------~----~----~----~------~----~------~--~---
from mod_python import apache, Cookie
from os import environ

def accesshandler(req, **kwargs):
    """
    (Was) Authentication handler that checks against Django's auth database.
    (Is)  Access handler that check agains Django's session table
    """

    options = req.get_options()
    settings_module = options.get('DJANGO_SETTINGS_MODULE', None)
    if settings_module:
        environ['DJANGO_SETTINGS_MODULE'] = settings_module
    else:
        return apache.HTTP_FORBIDDEN

    cookies = Cookie.get_cookies(req)

    if cookies.has_key('sessionid'):
        django_sessionid = cookies['sessionid'].value
    else:
        return apache.HTTP_FORBIDDEN

    from django import db
    db.reset_queries()

    cursor = db.connection.cursor()
    sql = """
          SELECT session_data
          FROM django_session
          WHERE expire_date > now()
           AND session_key = '%s'
    """ % django_sessionid
    cursor.execute( sql )
    session = cursor.dictfetchone()

    sessionid_is_found = False
    if len(session['session_data']) > 0:
        sessionid_is_found = True

    if not sessionid_is_found:
        return apache.HTTP_FORBIDDEN

    import base64
    a = base64.decodestring( session['session_data'] )

    #who is the owner of this cookie??!
    #cause in session['session_data'], is not
    req.write(a)


    return apache.HTTP_UNAUTHORIZED

Reply via email to