X-Git-Url: https://code.grnet.gr/git/snf-occi/blobdiff_plain/8619548c5cb774c097b47c4cc0ee5aea4008314d..0e9a60981c343ba5c34c0d6565e77c08409aca51:/snfOCCI/voms/__init__.py diff --git a/snfOCCI/voms/__init__.py b/snfOCCI/voms/__init__.py index 4e94a5c..3e97ed1 100644 --- a/snfOCCI/voms/__init__.py +++ b/snfOCCI/voms/__init__.py @@ -6,7 +6,7 @@ import tempfile import M2Crypto -import snfOCCI.config +from snfOCCI.config import VOMS_CONFIG import voms_helper import exception @@ -55,26 +55,30 @@ def _get_cert_chain(ssl_info): cert = ssl_info.get(SSL_CLIENT_CERT_ENV, "") chain = ssl_info.get(SSL_CLIENT_CERT_CHAIN_0_ENV, "") + cert = M2Crypto.X509.load_cert_string(cert) aux = M2Crypto.X509.load_cert_string(chain) chain = M2Crypto.X509.X509_Stack() chain.push(aux) - return cert, chain + + return (cert, chain) -def _get_voms_info(self, ssl_info): +def _get_voms_info(ssl_info): """Extract voms info from ssl_info and return dict with it.""" try: - cert, chain = self._get_cert_chain(ssl_info) - except M2Crypto.X509.X509Error: - print "Error getting certificate chain" + cert, chain = _get_cert_chain(ssl_info) + except M2Crypto.X509.X509Error as e: + print e with voms_helper.VOMS(VOMS_CONFIG["vomsdir_path"],VOMS_CONFIG["ca_path"], VOMS_CONFIG["vomsapi_lib"]) as v: - if self._no_verify: - v.set_no_verify() + voms_data = v.retrieve(cert, chain) + + if not voms_data: + print "error \n" raise VomsError(v.error.value) d = {} @@ -119,9 +123,9 @@ def _split_fqan(fqan): return (vogroup, role, capability) -def authenticate(self, ssl_data): +def authenticate(ssl_data): try: - voms_info = self._get_voms_info(ssl_data) + voms_info = _get_voms_info(ssl_data) except VomsError as e: raise e