Exemple #1
0
        def run(self, params, **options):
            signon = SignOn.objects.get(id=params.id[0])
            id_token_string = signon.get_id_token_string()

            # TODO: SIOP routeine should be moved somewhere else
            if signon.authority.vender == "connect.venders.self":
                print "SIOP"
                id_token = IdToken.parse_siop_token(id_token_string)
                signon.verified = id_token.verified
                signon.id_token_object = id_token
                signon.save()
                print id_token.to_json(indent=2)

            print "*** Tokens ****"
            for token in signon.rp_token_related.all():
                print token.id, token.created_at, token.token
Exemple #2
0
def res_implicit(request, vender, action, mode):
    """
    """
    authres = AuthRes.from_url(request.get_full_path())
    valid_state = authres.state == request.session["state"]
    if not valid_state:
        raise Exception("Invalid State")

    if not authres.id_token:
        raise Exception("No ID Token")

    signon = None
    errors = None
    try:
        signon = SignOn.objects.get(state=authres.state)

        # Save AuthRes
        signon.response_object = authres

        # Save Id Token
        id_token_string = signon.get_id_token_string()
        if id_token_string:
            id_token = IdToken.parse_siop_token(id_token_string)
            signon.verified = id_token.verified
            signon.id_token_object = id_token
            signon.subject = id_token.sub

        signon.save()

        if authres.error:
            raise Exception("authres error")

        save_signon(request, signon)
        return bind(request, signon)

    except Exception, ex:
        errors = traceback.format_exc()
        if signon:
            signon.errors = errors
            signon.save()