diff --git a/warden3/contrib/warden_ra/warden_ra.py b/warden3/contrib/warden_ra/warden_ra.py index 3c5f7e9d9905c28c08ff4d66d994b47678c87e1d..deb183ae359385b4c31113080f15d1e551abccc8 100755 --- a/warden3/contrib/warden_ra/warden_ra.py +++ b/warden3/contrib/warden_ra/warden_ra.py @@ -21,7 +21,7 @@ import ejbcaws # usual path to warden server sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "warden_server")) -from warden_server import Request, ObjectReq, StreamLogger, FileLogger, Server, expose +from warden_server import Request, ObjectBase, StreamLogger, FileLogger, Server, expose class EjbcaClient(object): @@ -165,10 +165,10 @@ def format_cert(cert): # Server side -class NullAuthenticator(ObjectReq): +class NullAuthenticator(ObjectBase): - def __init__(self, req): - ObjectReq.__init__(self, req) + def __init__(self, req, log): + ObjectBase.__init__(self, req, log) def __str__(self): @@ -183,23 +183,25 @@ class NullAuthenticator(ObjectReq): return True -class CertHandler(ObjectReq): +class CertHandler(ObjectBase): - def __init__(self, req, registry): - ObjectReq.__init__(self, req) + def __init__(self, req, log, registry): + ObjectBase.__init__(self, req, log) self.registry = registry @expose(read=1, debug=1) def getCert(self, csr_data=None, name=None, password=None): if not (name and password and csr_data): - raise self.req.error(message="Wrong or missing arguments", error=400) + raise self.req.error(message="Wrong or missing arguments", error=400, client=name[0], password=password[0]) client = self.registry.get_client(name[0]) if not client: - raise self.req.error(message="Unknown client", error=403) + raise self.req.error(message="Unknown client", error=403, client=name[0], password=password[0]) + self.log.info("Client: %s" % client.name) try: newcert = client.new_cert(csr_data, password) except Exception as e: - raise self.req.error(message="Processing error", error=403, cause=e) + raise self.req.error(message="Processing error", error=403, exc=sys.exc_info()) + self.log.info("Generated.") return [("Content-Type", "application/x-x509-user-cert")], newcert.as_pem() @@ -210,10 +212,10 @@ def build_server(conf): req, filename=os.path.join(os.path.dirname(__file__), os.path.splitext(os.path.split(__file__)[1])[0] + ".log"), level=logging.DEBUG) - auth = NullAuthenticator(req) + auth = NullAuthenticator(req, log) registry = EjbcaRegistry(**conf) - handler = CertHandler(req, registry) - server = Server(req, auth, handler) + handler = CertHandler(req, log, registry) + server = Server(req, log, auth, handler) return server