Metadata-Version: 1.1
Name: authkerb
Version: 0.1
Summary: Kerberos authentication for Twisted
Home-page: https://github.com/alexeyzotov/authkerb
Author: Alexey Zotov
Author-email: alexey.zotov@gmail.com
License: MIT
Description: authkerb
        ========
        
        Kerberos authentication for Twisted
        
        ```python
        import os
        import sys
        
        from twisted.cred.portal import IRealm, Portal
        from twisted.internet import reactor
        from twisted.python import log
        from twisted.web import server
        from twisted.web.guard import HTTPAuthSessionWrapper, BasicCredentialFactory
        from twisted.web.resource import IResource, Resource
        
        from zope.interface import implements
        
        import authkerb
        
        
        class Simple(Resource):
            isLeaf = True
            
            def render_GET(self, request):
                return '<html>Hello, world!</html>'
        
        
        class Realm(object):
            implements(IRealm)
            
            def requestAvatar(self, avatarId, mind, *interfaces):
                if IResource in interfaces:
                    return (IResource, Simple(), lambda: None)
                
                raise NotImplementedError()
        
        
        os.environ['KRB5_KTNAME'] = '/path/to/keytab'
        log.startLogging(sys.stdout)
        
        negotiateChecker = authkerb.NegotiateCredentialsChecker()
        basicChecker = authkerb.BasicCredentialsChecker('HTTP/example.org', 'EXAMPLE.ORG')
        
        portal = Portal(Realm(), [negotiateChecker, basicChecker])
        
        negotiateFactory = authkerb.NegotiateCredentialFactory('HTTP')
        basicFactory = BasicCredentialFactory('realm')
        
        resource = HTTPAuthSessionWrapper(portal, [negotiateFactory, basicFactory])
        site = server.Site(resource)
        
        reactor.listenTCP(8080, site)
        reactor.run()
        ```
        
Keywords: twisted kerberos authentication
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Twisted
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 2 :: Only
Classifier: Topic :: Internet :: WWW/HTTP
