示例#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))
示例#2
0
文件: slcs.py 项目: brianwebb/lanyard
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
示例#3
0
文件: slcs.py 项目: brianwebb/lanyard
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
示例#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
示例#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
示例#6
0
文件: slcs.py 项目: brianwebb/lanyard
    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')

    try:
        certificate = slcs_handler(StringIO(plaintext[:-n]))
    except SLCSException, e:
        # TODO add error handling
        pass
        #return template(simple_page,title='Error - %s' % e.expression, body='<h1>%s</h1><pre>%s</pre>' % (e.expression, e.message))

    session = get_shib_session(request)
    context.store(session, certificate)

    return HTTPFound(location=model_url(context, request))


def json_default(context, request):
    data = {}
    if not (request.host.startswith('localhost:')) or (request.host.startswith('127.0.0.1:')):
        return {'response': 'Error', 'message': 'invalid request'}

    if request.method == 'POST':
        try:
            args = json.loads(request.body)
        except ValueError:
            return {'response': 'Error', 'message': 'invalid request'}