Hi, I'm struggling a bit to get rid of the friendly form identifier and 
challenger, and do my own Authenticator in a turbogears 2.1 project.  

I've got a 'faceless' web services server that won't even have a 
login form, since no human will ever visit the site.  So I want 
to retain the session cookie mechanism, and the sa_auth 
module that uses the default Group, User, and Permission 
model in SQL Alchemy.  I just am going to do my own 
Authentication, and get rid of the Challenger.  

So far I've implemented an IAuthenticator 

class ShaAuthenticator(IAuthenticator):

   def authenticate(self, environment, identity):

      if not 'user_email' in identity:
         return None

and in app_cfg.py

hash_auth = ShaAuthenticator
base_config.sa_auth.authenticators = [('hash_auth', hash_auth)]

# got rid of the challenger
base_config.sa_auth.form_plugin = None

#and am keeping
base_config.auth_backend = 'sqlalchemy'
base_config.sa_auth.dbsession = model.DBSession

If I try to run at the moment I see:

ValueError: hash_auth: An object has failed to implement 
interface <InterfaceClass 

        The authenticate attribute was not provided.

I didn't find much help on the turbogears google group, I'm hoping 
someone might be able to point me in the right direction here.

Repoze-dev mailing list

Reply via email to