1
我可能忽略了簡單的事情,但我無法獲得Cherrypy SessionAuth的工作。cherrypy SessionAuth不工作?
使用調試並在cherrypy.session沒有用戶名,SessionAuth把這個日誌文件:
[20/Feb/2013:00:58:39] TOOLS.SESSAUTH No username, routing to login_screen with from_page 'http://localhost:8080/'
麻煩的是它沒有路由的登錄屏幕。它將返回true給調用者並且調用者繼續執行。它還將cherrypy.serving.response.body設置爲呈現到登錄頁面的html代碼片段。但是我的調用函數對response.body一無所知。
我在做什麼錯?
下面是從root.py相關代碼:
class MySessionAuth(cptools.SessionAuth):
def check_username_and_password(self, username, password):
users = dict(foo="bar")
if username in users and password == users[username]:
return False
def on_check(self, username):
cherrypy.session['username'] = username
def session_auth(**kwargs):
sa = MySessionAuth()
for k, v in kwargs.items():
setattr(sa, k, v)
return sa.run()
cherrypy.tools.protect = cherrypy._cptools.Tool('before_handler', session_auth)
class Root:
@cherrypy.expose()
@cherrypy.tools.protect(debug=True)
def index(self):
tmpl = loader.load('index.html')
return tmpl.generate(flash = '',).render('html', doctype='html')