Module Expr Str Import alias Import alias Import alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias identifier ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias ImportFrom alias Assign NameStore Str Assign NameStore Dict Str Str Str Str Dict Str Str Str Str Dict Str Str Str Str Dict Str Str Str Str Dict Str Str Str Str FunctionDef arguments args NameParam defaults body Assign NameStore ListLoad Str If CompareIn Str AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr Str Expr Call AttributeLoad NameLoad attr Str orelse Expr Call AttributeLoad NameLoad attr Str Return Call AttributeLoad Str attr ListComp BinOpMod NameLoad SubscriptLoad NameLoad Index NameLoad comprehension NameStore NameLoad decorator_list Assign NameStore Str FunctionDef arguments args NameParam defaults body Return Call NameLoad BinOpMod NameLoad Dict Str Str Str Call NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Return Call NameLoad BinOpMod NameLoad Dict Str Str Str Call NameLoad NameLoad decorator_list Assign NameStore Str FunctionDef arguments args NameParam defaults body Assign NameStore Str Assign NameStore Dict Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Str If CompareIsNot NameLoad NameLoad body Assign SubscriptStore NameLoad Index Str BinOpMod Str NameLoad orelse Assign SubscriptStore NameLoad Index Str Str Assign NameStore Call NameLoad AttributeLoad NameLoad attr If CompareIn Str AttributeLoad NameLoad attr body Assign NameStore Dict Assign SubscriptStore NameLoad Index Str SubscriptLoad AttributeLoad NameLoad attr Index Str Assign SubscriptStore NameLoad Index Str SubscriptLoad AttributeLoad NameLoad attr Index Str Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr NameLoad If NameLoad body Return Call NameLoad keyword BoolOpOr NameLoad Str keyword NameLoad orelse Assign NameStore Str orelse Assign TupleStore NameStore NameStore Call AttributeLoad NameLoad attr Dict Assign AttributeStore NameLoad attr NameLoad If CompareIn Str AttributeLoad NameLoad attr body Delete SubscriptDel AttributeLoad NameLoad attr Index Str Assign SubscriptStore NameLoad Index Str NameLoad Return Call NameLoad BinOpMod NameLoad NameLoad decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad AttributeLoad NameLoad attr Return Call NameLoad keyword Str keyword Call AttributeLoad NameLoad attr decorator_list ClassDef bases NameLoad body Assign NameStore ListLoad TupleLoad NameLoad NameLoad TupleLoad Str TupleLoad NameLoad NameLoad TupleLoad Str NameLoad decorator_list FunctionDef arguments args defaults vararg kwarg body Return Call NameLoad decorator_list If CompareEq NameLoad Str body Assign NameStore Call NameLoad Assign NameStore Call NameLoad Assign NameStore Call NameLoad keyword NameLoad keyword Str keyword NameLoad keyword NameLoad Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr NameLoad Expr Call AttributeLoad NameLoad attr NameLoad Str keyword Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr NameLoad Str Expr Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore Call NameLoad For TupleStore NameStore NameStore ListLoad TupleLoad Str Str TupleLoad Str Str body Expr Call AttributeLoad NameLoad attr BinOpMod Str TupleLoad NameLoad NameLoad Expr Call AttributeLoad NameLoad attr Num FunctionDef arguments args NameParam NameParam defaults body Return CompareEq NameLoad NameLoad decorator_list Assign NameStore Call NameLoad NameLoad NameLoad Assign NameStore Call NameLoad Str Assign NameStore Call NameLoad Str Str Assign NameStore Call NameLoad keyword Str Assign AttributeStore NameLoad attr Dict NameLoad ListLoad Str Assign NameStore ListLoad TupleLoad Str NameLoad TupleLoad Str NameLoad Assign NameStore ListLoad TupleLoad Str NameLoad TupleLoad Str NameLoad Assign NameStore ListLoad TupleLoad Str NameLoad TupleLoad Str NameLoad Assign NameStore ListLoad Assign NameStore NameLoad If Call AttributeLoad AttributeLoad NameLoad attr attr Str body Assign NameStore AttributeLoad NameLoad attr Assign NameStore Call NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad NameLoad keyword NameLoad keyword AttributeLoad NameLoad attr Expr Call NameLoad NameLoad keyword Str
N/A N/A  Simple BFG application demonstrating use of repoze.who in "hybrid" mode.

- repoze.who middleware intercepts and validates existing request credentials,
  leaving 'REMOTE_USER' in the WSGI environ if they are OK.

- Application handles login / logout directly, using the repoze.who API
  to validate credentials and set headers.
 N/A logging N/A os N/A sys StringIO StringIO paste.httpserver serve repoze.bfg.authentication RemoteUserAuthenticationPolicy repoze.bfg.authorization ACLAuthorizationPolicy repoze.bfg.configuration Configurator repoze.bfg.security Allow repoze.bfg.security Authenticated repoze.bfg.security DENY_ALL repoze.bfg.security Everyone repoze.who.api get_api repoze.who.interfaces IChallenger repoze.who.middleware PluggableAuthenticationMiddleware PAM repoze.who.plugins.basicauth BasicAuthPlugin repoze.who.plugins.auth_tkt AuthTktCookiePlugin repoze.who.plugins.redirector RedirectorPlugin repoze.who.plugins.htpasswd HTPasswdPlugin repoze.who.classifiers default_request_classifier repoze.who.classifiers default_challenge_decider webob Response webob.exc HTTPFound N/A LINK  <p><a href="%(url)s">%(title)s</a></p> N/A ACTIONS N/A root protected login logout N/A url title / Root N/A url title /protected.html Protected N/A url title /login.html Login N/A url title /logout.html Logout _actions N/A N/A request N/A N/A N/A names N/A root N/A N/A REMOTE_USER N/A request environ N/A N/A N/A N/A names append protected N/A N/A N/A names append logout N/A N/A N/A N/A names append login N/A N/A N/A join N/A N/A LINK N/A ACTIONS N/A x N/A x names N/A N/A PAGE <html>
<body>
 <h1>%(page_title)s</h1>
%(actions)s
</body>
</html>
 unprotected N/A N/A request N/A N/A N/A N/A Response N/A PAGE N/A page_title actions Unprotected Page N/A _actions request N/A protected N/A N/A request N/A N/A N/A N/A Response N/A PAGE N/A page_title actions protected Page N/A _actions request N/A N/A LOGIN_FORM <html>
<body>
 <h1> Log In </h1>
 <form method="POST">
 %(came_from)s
 <p>%(message)s</p>
 <p>Login name: <input type="text" name="login" /></p>
 <p>Password: <input type="password" name="password" /></p>
 <p><input type="submit" name="form.login" value="Log In"/></p>
 </form>
</body>
</html>
 login N/A N/A request N/A N/A N/A message N/A info N/A N/A came_from N/A N/A N/A request params get came_from N/A N/A came_from None N/A N/A N/A info N/A came_from N/A <input type="hidden" name="came_from" value="%s" /> came_from N/A N/A N/A info N/A came_from N/A who_api N/A get_api N/A request environ N/A N/A form.login N/A request POST N/A N/A creds N/A N/A N/A creds N/A login N/A N/A request POST N/A login N/A N/A creds N/A password N/A N/A request POST N/A password N/A N/A authenticated headers N/A N/A who_api login creds N/A authenticated N/A N/A N/A HTTPFound location N/A came_from / headers headers N/A N/A message Invalid login. N/A N/A N/A _ headers N/A N/A who_api login N/A N/A N/A request response_headerlist headers N/A N/A REMOTE_USER N/A request environ N/A N/A N/A N/A request environ N/A REMOTE_USER N/A N/A info N/A message message N/A N/A Response N/A LOGIN_FORM info N/A logout N/A N/A request N/A N/A N/A who_api N/A get_api N/A request environ N/A N/A HTTPFound location / headers N/A N/A who_api logout N/A Root N/A object N/A N/A __acl__ N/A N/A Allow Authenticated N/A view_protected N/A Allow Everyone N/A view DENY_ALL N/A get_root N/A N/A N/A args kw N/A N/A N/A Root N/A N/A N/A __name__ __main__ N/A N/A authentication_policy N/A RemoteUserAuthenticationPolicy N/A authorization_policy N/A ACLAuthorizationPolicy N/A config N/A Configurator root_factory get_root default_permission view authentication_policy authentication_policy authorization_policy authorization_policy N/A N/A N/A config begin N/A N/A N/A config add_view unprotected N/A N/A N/A config add_view protected protected.html permission view_protected N/A N/A N/A config add_view login login.html N/A N/A N/A config add_view logout logout.html N/A N/A N/A config end N/A app N/A N/A config make_wsgi_app N/A io N/A StringIO N/A N/A name password N/A N/A admin admin N/A user user N/A N/A N/A N/A io write N/A %s:%s
 N/A name password N/A N/A N/A io seek 0 cleartext_check N/A N/A password hashed N/A N/A N/A N/A password hashed N/A N/A htpasswd N/A HTPasswdPlugin io cleartext_check N/A basicauth N/A BasicAuthPlugin repoze.who N/A auth_tkt N/A AuthTktCookiePlugin secret auth_tkt N/A redirector N/A RedirectorPlugin login_url /login.html N/A N/A redirector classifications N/A IChallenger N/A browser N/A identifiers N/A N/A auth_tkt auth_tkt N/A basicauth basicauth N/A authenticators N/A N/A auth_tkt auth_tkt N/A htpasswd htpasswd N/A challengers N/A N/A redirector redirector N/A basicauth basicauth N/A mdproviders N/A N/A log_stream None N/A N/A N/A N/A os environ get WHO_LOG N/A N/A log_stream N/A sys stdout N/A middleware N/A PAM app identifiers authenticators challengers mdproviders default_request_classifier default_challenge_decider log_stream log_stream log_level N/A logging DEBUG N/A N/A serve middleware host 0.0.0.0