2017-11-01 1 views
0

ich mod_python, wie dies für meinen eigenen benutzerdefinierten Authentifizierungsmechanismus verwenden, um übergeben:Wie Informationen von mod_python zu CGI-Skripten

# apache/conf/conf.d/mod_python.conf 

<Directory some/path> 
    PythonAccessHandler myhandler::myhandler 
    Options +ExecCGI 
    AddHandler cgi-script .cgi 
</Directory> 

-

# myhandler.py 

from mod_python import apache 

def myhandler(req): 
    if check(req): 
     return apache.DECLINED 
    else: 
     return apache.HTTP_UNAUTHORIZED 

def check(req): 
    from random import random 
    return random() >= 0.5 

und möchte einig CGI-Skripte, die sein wird, ausgeführt, wenn myhandler ablehnt.

#!/bin/bash 
# test.cgi 

echo Content-type: text/plain 
echo 
echo "Hello!" 

Diese Konfiguration funktioniert gut, aber zusätzlich dazu, würde Ich mag sevral Informationen von mod_python auf den CGI-Skripte wie dies nur passieren:

# myhandler.py 

def myhandler(req): 
    if check(req): 
     import sys 
     req.subprocess_env['python_version'] = repr(sys.version_info) 
     return apache.DECLINED 
    else: 
     return apache.HTTP_UNAUTHORIZED 

-

#!/bin/bash 
# test2.cgi 

echo Content-type: text/plain 
echo 
echo "python version = $python_version" 

Diese Konfiguration funktioniert jedoch nicht. Die an reqprocess_env übergebenen Werte werden in den CGI-Skripten verworfen.

Gibt es eine Möglichkeit, Informationen von mod_python zu CGI-Skript zu übergeben?

Jede Hilfe wäre willkommen.

Antwort

0

Die Art, wie ich vorgeschlagen habe funktioniert wie erwartet in Apache 2.4, aber nicht in 2.2

Verwandte Themen