# Example wrapper nnrpd_dynamic_wrapper.py for support of old python
# authentication scripts, by Erik Klavon.
# This file contains a sample python script which can be used to
# duplicate the behavior of the old nnrppythonauth functionality. This
# script only supports dynamic access control by group.
# How to use this wrapper:
# - insert your authentication class into this file.
# - rename your authentication class OLDAUTH
#
# Old AUTH class
# Insert your old auth class here
# do not include the code which sets the hook
#
# Wrapper AUTH class. It creates an instance of the old class and
# calls its methods. Arguments and return values are munged as
# needed to fit the new way of doing things.
#
class MYAUTH:
"""Provide dynamic access callbacks to nnrpd."""
def dynamic_init(self):
self.old = OLDAUTH()
def dynamic(self, attributes):
return (self.old).authorize(attributes)
def dynamic_close(self):
(self.old).close()
#
# The rest is used to hook up the auth module on nnrpd. It is unlikely
# you will ever need to modify this.
#
# Import functions exposed by nnrpd. This import must succeed, or nothing
# will work!
from nnrpd import *
# Create a class instance
myauth = MYAUTH()
# ...and try to hook up on nnrpd. This would make auth object methods visible
# to nnrpd.
try:
set_auth_hook(myauth)
syslog('notice', "authentication module successfully hooked into nnrpd")
except Exception, errmsg:
syslog('error', "Cannot obtain nnrpd hook for authentication method: %s" % errmsg[0])
syntax highlighted by Code2HTML, v. 0.9.1