mirror of
				https://github.com/laurivosandi/certidude
				synced 2025-10-31 01:19:11 +00:00 
			
		
		
		
	api: Use common AuthorityResource where possible
This commit is contained in:
		| @@ -3,13 +3,11 @@ from certidude.decorators import serialize | ||||
| from certidude.config import cp | ||||
| from certidude import config, const | ||||
| from jinja2 import Template | ||||
| from .utils import AuthorityHandler | ||||
|  | ||||
| logger = logging.getLogger(__name__) | ||||
|  | ||||
| class BootstrapResource(object): | ||||
|     def __init__(self, authority): | ||||
|         self.authority = authority | ||||
|  | ||||
| class BootstrapResource(AuthorityHandler): | ||||
|     def on_get(self, req, resp): | ||||
|         resp.body = Template(open(config.BOOTSTRAP_TEMPLATE).read()).render( | ||||
|             authority = const.FQDN, | ||||
|   | ||||
| @@ -8,15 +8,13 @@ from datetime import datetime | ||||
| from certidude import config, push | ||||
| from certidude.auth import login_required, authorize_admin, authorize_server | ||||
| from certidude.decorators import serialize | ||||
| from .utils import AuthorityHandler | ||||
|  | ||||
| logger = logging.getLogger(__name__) | ||||
|  | ||||
| # TODO: lease namespacing (?) | ||||
|  | ||||
| class LeaseDetailResource(object): | ||||
|     def __init__(self, authority): | ||||
|         self.authority = authority | ||||
|  | ||||
| class LeaseDetailResource(AuthorityHandler): | ||||
|     @serialize | ||||
|     @login_required | ||||
|     @authorize_admin | ||||
| @@ -32,10 +30,7 @@ class LeaseDetailResource(object): | ||||
|             raise falcon.HTTPNotFound() | ||||
|  | ||||
|  | ||||
| class LeaseResource(object): | ||||
|     def __init__(self, authority): | ||||
|         self.authority = authority | ||||
|  | ||||
| class LeaseResource(AuthorityHandler): | ||||
|     @authorize_server | ||||
|     def on_post(self, req, resp): | ||||
|         client_common_name = req.get_param("client", required=True) | ||||
|   | ||||
| @@ -11,11 +11,9 @@ from certidude.firewall import whitelist_subnets | ||||
| from datetime import datetime, timedelta | ||||
| from oscrypto import keys, asymmetric, symmetric | ||||
| from oscrypto.errors import SignatureError | ||||
| from .utils import AuthorityHandler | ||||
|  | ||||
| class OCSPResource(object): | ||||
|     def __init__(self, authority): | ||||
|         self.authority = authority | ||||
|  | ||||
| class OCSPResource(AuthorityHandler): | ||||
|     @whitelist_subnets(config.OCSP_SUBNETS) | ||||
|     def __call__(self, req, resp): | ||||
|         try: | ||||
|   | ||||
| @@ -16,6 +16,7 @@ from datetime import datetime | ||||
| from oscrypto import asymmetric | ||||
| from oscrypto.errors import SignatureError | ||||
| from xattr import getxattr | ||||
| from .utils import AuthorityHandler | ||||
|  | ||||
| logger = logging.getLogger(__name__) | ||||
|  | ||||
| @@ -26,10 +27,7 @@ curl -f -L -H "Content-type: application/pkcs10" --data-binary @test.csr \ | ||||
|   http://ca.example.lan/api/request/?wait=yes | ||||
| """ | ||||
|  | ||||
| class RequestListResource(object): | ||||
|     def __init__(self, authority): | ||||
|         self.authority = authority | ||||
|  | ||||
| class RequestListResource(AuthorityHandler): | ||||
|     @login_optional | ||||
|     @whitelist_subnets(config.REQUEST_SUBNETS) | ||||
|     @whitelist_content_types("application/pkcs10") | ||||
| @@ -177,10 +175,7 @@ class RequestListResource(object): | ||||
|                     cls=MyEncoder) | ||||
|  | ||||
|  | ||||
| class RequestDetailResource(object): | ||||
|     def __init__(self, authority): | ||||
|         self.authority = authority | ||||
|  | ||||
| class RequestDetailResource(AuthorityHandler): | ||||
|     def on_get(self, req, resp, cn): | ||||
|         """ | ||||
|         Fetch certificate signing request as PEM | ||||
|   | ||||
| @@ -5,13 +5,11 @@ import json | ||||
| import logging | ||||
| from certidude import const, config | ||||
| from certidude.firewall import whitelist_subnets | ||||
| from .utils import AuthorityHandler | ||||
|  | ||||
| logger = logging.getLogger(__name__) | ||||
|  | ||||
| class RevocationListResource(object): | ||||
|     def __init__(self, authority): | ||||
|         self.authority = authority | ||||
|  | ||||
| class RevocationListResource(AuthorityHandler): | ||||
|     @whitelist_subnets(config.CRL_SUBNETS) | ||||
|     def on_get(self, req, resp): | ||||
|         # Primarily offer DER encoded CRL as per RFC5280 | ||||
|   | ||||
| @@ -9,6 +9,7 @@ from certidude import push, config | ||||
| from certidude.firewall import whitelist_subnets | ||||
| from oscrypto import keys, asymmetric, symmetric | ||||
| from oscrypto.errors import SignatureError | ||||
| from .utils import AuthorityHandler | ||||
|  | ||||
| # Monkey patch asn1crypto | ||||
|  | ||||
| @@ -36,10 +37,7 @@ class SCEPBadRequest(SCEPError): code = 2 | ||||
| class SCEPBadTime(SCEPError): code = 3 | ||||
| class SCEPBadCertId(SCEPError): code = 4 | ||||
|  | ||||
| class SCEPResource(object): | ||||
|     def __init__(self, authority): | ||||
|         self.authority = authority | ||||
|  | ||||
| class SCEPResource(AuthorityHandler): | ||||
|     @whitelist_subnets(config.SCEP_SUBNETS) | ||||
|     def on_get(self, req, resp): | ||||
|         operation = req.get_param("operation", required=True) | ||||
|   | ||||
| @@ -5,14 +5,12 @@ from certidude import const, config | ||||
| from certidude.decorators import serialize | ||||
| from jinja2 import Environment, FileSystemLoader | ||||
| from certidude.firewall import whitelist_subject | ||||
| from .utils import AuthorityHandler | ||||
|  | ||||
| logger = logging.getLogger(__name__) | ||||
| env = Environment(loader=FileSystemLoader(config.SCRIPT_DIR), trim_blocks=True) | ||||
|  | ||||
| class ScriptResource(): | ||||
|     def __init__(self, authority): | ||||
|         self.authority = authority | ||||
|  | ||||
| class ScriptResource(AuthorityHandler): | ||||
|     @whitelist_subject | ||||
|     def on_get(self, req, resp, cn): | ||||
|         path, buf, cert, attribs = self.authority.get_attributes(cn) | ||||
|   | ||||
| @@ -6,13 +6,11 @@ import hashlib | ||||
| from certidude.auth import login_required, authorize_admin | ||||
| from certidude.decorators import csrf_protection | ||||
| from xattr import getxattr | ||||
| from .utils import AuthorityHandler | ||||
|  | ||||
| logger = logging.getLogger(__name__) | ||||
|  | ||||
| class SignedCertificateDetailResource(object): | ||||
|     def __init__(self, authority): | ||||
|         self.authority = authority | ||||
|  | ||||
| class SignedCertificateDetailResource(AuthorityHandler): | ||||
|     def on_get(self, req, resp, cn): | ||||
|  | ||||
|         preferred_type = req.client_prefers(("application/json", "application/x-pem-file")) | ||||
|   | ||||
| @@ -4,13 +4,11 @@ from xattr import getxattr, removexattr, setxattr | ||||
| from certidude import push | ||||
| from certidude.auth import login_required, authorize_admin | ||||
| from certidude.decorators import serialize, csrf_protection | ||||
| from .utils import AuthorityHandler | ||||
|  | ||||
| logger = logging.getLogger(__name__) | ||||
|  | ||||
| class TagResource(object): | ||||
|     def __init__(self, authority): | ||||
|         self.authority = authority | ||||
|  | ||||
| class TagResource(AuthorityHandler): | ||||
|     @serialize | ||||
|     @login_required | ||||
|     @authorize_admin | ||||
|   | ||||
| @@ -13,13 +13,11 @@ from certidude.decorators import serialize | ||||
| from certidude.user import User | ||||
| from certidude import config | ||||
| from certidude.auth import login_required, authorize_admin | ||||
| from .utils import AuthorityHandler | ||||
|  | ||||
| logger = logging.getLogger(__name__) | ||||
|  | ||||
| class TokenResource(object): | ||||
|     def __init__(self, authority): | ||||
|         self.authority = authority | ||||
|  | ||||
| class TokenResource(AuthorityHandler): | ||||
|     def on_put(self, req, resp): | ||||
|         # Consume token | ||||
|         now = time() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user