from occi.backend import MixinBackend
from occi.extensions.infrastructure import COMPUTE, START, STOP, SUSPEND, RESTART, RESOURCE_TEMPLATE, OS_TEMPLATE
from occi.wsgi import Application
+from occi.exceptions import HTTPError
from wsgiref.simple_server import make_server
from wsgiref.validate import validator
-
+import voms
class MyAPP(Application):
self.refresh_flavors(compClient,cyclClient)
self.refresh_compute_instances(compClient)
- # token will be represented in self.extras
- return self._call_occi(environ, response, security = None, token = environ['HTTP_AUTH_TOKEN'], snf = compClient, client = cyclClient)
+ ssl_dict = dict()
+ ssl_dict["SSL_CLIENT_S_DN_ENV"] = environ["SSL_CLIENT_S_DN_ENV"]
+ ssl_dict["SSL_CLIENT_CERT_ENV"] = environ["SSL_CLIENT_CERT_ENV"]
+ ssl_dict["SSL_CLIENT_CERT_CHAIN_0_ENV"] = environ["SSL_CLIENT_CERT_CHAIN_0_ENV"]
+
+ info = voms.authenticate(ssl_dict)
+ print info
+
+ #Always authenticated, only for testing purposes
+ authenticated = True
+
+ if authenticated:
+ # token will be represented in self.extras
+ return self._call_occi(environ, response, security = None, token = environ['HTTP_AUTH_TOKEN'], snf = compClient, client = cyclClient)
+ else:
+ raise HTTPError(404, "Unauthorized access")
def main():
import snfOCCI.config
import voms_helper
+import exception
SSL_CLIENT_S_DN_ENV = "SSL_CLIENT_S_DN"
SSL_CLIENT_CERT_ENV = "SSL_CLIENT_CERT"
except M2Crypto.X509.X509Error:
print "Error getting certificate chain"
- with voms_helper.VOMS(VOMS_CONFIG["vomsdir_path"],
- VOMS_CONFIG["ca_path"], VOMS_CONFIG["vomsapi_lib"] as v:
+ 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)