Exemple #1
0
def destroy(context, request):
    session = get_shib_session(request)
    data = get_base_data(context, request)
    root = find_root(context)
    certificate = root.slcs.get(session)

    credname = request.params['credname']

    context.myproxy_destroy(certificate, credname)

    return HTTPFound(location=model_url(context, request))
Exemple #2
0
def default(context, request):
    session = get_shib_session(request)
    data = get_base_data(context, request)
    if session:
        cert = context.get(session)
        data['certificate'] = cert
        if cert:
            not_before, not_after = data['certificate'].get_times()
            data['not_after'] = not_after.get_datetime()
            data['cn'] = cert.get_dn().split(',')[-1:][0].strip()

    return data
Exemple #3
0
def default(context, request):
    session = get_shib_session(request)
    data = get_base_data(context, request)
    data["certificate"] = None
    if session:
        cert = context.get(session)
        data["certificate"] = cert
        if cert:
            not_before, not_after = data["certificate"].get_times()
            data["not_after"] = not_after.get_datetime()
            data["cn"] = cert.get_dn().split(",")[-1:][0].strip()

    return data
Exemple #4
0
def default(context, request):
    data = get_base_data(context, request)
    session = get_shib_session(request)
    if session:
        root = find_root(context)
        certificate = root.slcs.get(session)
        data['myproxyinfo'] = None
        if certificate:
            data['myproxyinfo'] = context.myproxy_info(certificate)

        proxies = context.get(session)
        data['proxies'] = proxies

    hostname = socket.getfqdn()
    return data
Exemple #5
0
def put(context, request):
    session = get_shib_session(request)
    data = get_base_data(context, request)
    if request.params:
        info = parse(request.environ, request.environ['wsgi.input'])
        proxy = info['proxy']

        root = find_root(context)
        certificate = root.slcs.get(session)

        cred_name = proxy.name or None
        password = proxy.password or None

        context.myproxy_put(session, certificate, cred_name, password)

        return HTTPFound(location=model_url(context, request))
    return data
Exemple #6
0
    a = AES.new(session_key)
    plaintext = a.decrypt(unhexlify(slcsResp))

    # remove AES padding
    n = ord(plaintext[-1]) # last byte contains number of padding bytes
    if n > AES.block_size or n > len(plaintext):
        raise Exception('invalid padding')
    print plaintext
    try:
        certificate = slcs_handler(StringIO(plaintext[:-n]))
        print "cert = " + str(certificate)
    except SLCSException, e:
        # TODO add error handling
        print "Exception: " + str(e)
        pass
        #return template(simple_page,title='Error - %s' % e.expression, body='<h1>%s</h1><pre>%s</pre>' % (e.expression, e.message))
    username = certificate.get_dn()
    passphrase = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(8)) # Create a passphrase of length = 8
    data = get_base_data(context, request)
    data['username'] = username
    data['passphrase'] = passphrase    
    c = MyProxyClient(hostname='myproxy2.arcs.org.au', port= 7512, serverDN='/C=AU/O=APACGrid/OU=VPAC/CN=myproxy2.arcs.org.au')
    c.put(username, passphrase, certificate, certificate.get_key()._key, lambda *a: '', retrievers='*')

    print "MYPROXY Username = "******"MYPROXY Passphrase  = " + passphrase

    print "URL = " + originURL
    return data

Exemple #7
0
def default(context, request):
    data = get_base_data(context, request)
    return data