コード例 #1
0
ファイル: assertion.py プロジェクト: tophatmonocle/pysaml2
def authn_statement(authn_class=None,
                    authn_auth=None,
                    authn_decl=None,
                    authn_decl_ref=None,
                    authn_instant="",
                    subject_locality="",
                    session_not_on_or_after=None):
    """
    Construct the AuthnStatement
    :param authn_class: Authentication Context Class reference
    :param authn_auth: Authenticating Authority
    :param authn_decl: Authentication Context Declaration
    :param authn_decl_ref: Authentication Context Declaration reference
    :param authn_instant: When the Authentication was performed.
        Assumed to be seconds since the Epoch.
    :param subject_locality: Specifies the DNS domain name and IP address
        for the system from which the assertion subject was apparently
        authenticated.
    :return: An AuthnContext instance
    """
    if authn_instant:
        _instant = instant(time_stamp=authn_instant)
    else:
        _instant = instant()

    if authn_class:
        res = factory(saml.AuthnStatement,
                      authn_instant=_instant,
                      session_index=sid(),
                      session_not_on_or_after=session_not_on_or_after,
                      authn_context=_authn_context_class_ref(
                          authn_class, authn_auth))
    elif authn_decl:
        res = factory(saml.AuthnStatement,
                      authn_instant=_instant,
                      session_index=sid(),
                      session_not_on_or_after=session_not_on_or_after,
                      authn_context=_authn_context_decl(
                          authn_decl, authn_auth))
    elif authn_decl_ref:
        res = factory(saml.AuthnStatement,
                      authn_instant=_instant,
                      session_index=sid(),
                      session_not_on_or_after=session_not_on_or_after,
                      authn_context=_authn_context_decl_ref(
                          authn_decl_ref, authn_auth))
    else:
        res = factory(saml.AuthnStatement,
                      authn_instant=_instant,
                      session_index=sid(),
                      session_not_on_or_after=session_not_on_or_after)

    if subject_locality:
        res.subject_locality = saml.SubjectLocality(text=subject_locality)

    return res
コード例 #2
0
ファイル: assertion.py プロジェクト: tophatmonocle/pysaml2
def authn_statement(authn_class=None, authn_auth=None,
                    authn_decl=None, authn_decl_ref=None, authn_instant="",
                    subject_locality="", session_not_on_or_after=None):
    """
    Construct the AuthnStatement
    :param authn_class: Authentication Context Class reference
    :param authn_auth: Authenticating Authority
    :param authn_decl: Authentication Context Declaration
    :param authn_decl_ref: Authentication Context Declaration reference
    :param authn_instant: When the Authentication was performed.
        Assumed to be seconds since the Epoch.
    :param subject_locality: Specifies the DNS domain name and IP address
        for the system from which the assertion subject was apparently
        authenticated.
    :return: An AuthnContext instance
    """
    if authn_instant:
        _instant = instant(time_stamp=authn_instant)
    else:
        _instant = instant()

    if authn_class:
        res = factory(
            saml.AuthnStatement,
            authn_instant=_instant,
            session_index=sid(),
            session_not_on_or_after=session_not_on_or_after,
            authn_context=_authn_context_class_ref(
                authn_class, authn_auth))
    elif authn_decl:
        res = factory(
            saml.AuthnStatement,
            authn_instant=_instant,
            session_index=sid(),
            session_not_on_or_after=session_not_on_or_after,
            authn_context=_authn_context_decl(authn_decl, authn_auth))
    elif authn_decl_ref:
        res = factory(
            saml.AuthnStatement,
            authn_instant=_instant,
            session_index=sid(),
            session_not_on_or_after=session_not_on_or_after,
            authn_context=_authn_context_decl_ref(authn_decl_ref,
                                                  authn_auth))
    else:
        res = factory(
            saml.AuthnStatement,
            authn_instant=_instant,
            session_index=sid(),
            session_not_on_or_after=session_not_on_or_after)

    if subject_locality:
        res.subject_locality = saml.SubjectLocality(text=subject_locality)

    return res
コード例 #3
0
ファイル: s_utils.py プロジェクト: tophatmonocle/pysaml2
def assertion_factory(**kwargs):
    assertion = saml.Assertion(version=VERSION,
                               id=sid(),
                               issue_instant=instant())
    for key, val in kwargs.items():
        setattr(assertion, key, val)
    return assertion
コード例 #4
0
def test_valid():
    assert valid("2000-01-12T00:00:00Z") == False
    current_year = datetime.datetime.today().year
    assert valid("%d-01-12T00:00:00Z" % (current_year + 1)) == True
    this_instance = instant()
    time.sleep(1)
    assert valid(this_instance) is False  # unless on a very fast machine :-)
    soon = in_a_while(seconds=10)
    assert valid(soon) == True
コード例 #5
0
def test_valid():
    assert valid("2000-01-12T00:00:00Z") == False
    current_year = datetime.datetime.today().year
    assert valid("%d-01-12T00:00:00Z" % (current_year + 1)) == True
    this_instance = instant()
    time.sleep(1)
    assert valid(this_instance) is False  # unless on a very fast machine :-)
    soon = in_a_while(seconds=10)
    assert valid(soon) == True
コード例 #6
0
def _expiration(timeout, tformat=None):
    # Wed, 06-Jun-2012 01:34:34 GMT
    if not tformat:
        tformat = "%a, %d-%b-%Y %T GMT"

    if timeout == "now":
        return time_util.instant(tformat)
    else:
        # validity time should match lifetime of assertions
        return time_util.in_a_while(minutes=timeout, format=tformat)
コード例 #7
0
ファイル: sp.py プロジェクト: tophatmonocle/pysaml2
def _expiration(timeout, tformat=None):
    # Wed, 06-Jun-2012 01:34:34 GMT
    if not tformat:
        tformat = "%a, %d-%b-%Y %T GMT"

    if timeout == "now":
        return time_util.instant(tformat)
    else:
        # validity time should match lifetime of assertions
        return time_util.in_a_while(minutes=timeout, format=tformat)
コード例 #8
0
ファイル: idp.py プロジェクト: tophatmonocle/pysaml2
def _expiration(timeout, tformat="%a, %d-%b-%Y %H:%M:%S GMT"):
    """

    :param timeout:
    :param tformat:
    :return:
    """
    if timeout == "now":
        return time_util.instant(tformat)
    elif timeout == "dawn":
        return time.strftime(tformat, time.gmtime(0))
    else:
        # validity time should match lifetime of assertions
        return time_util.in_a_while(minutes=timeout, format=tformat)
コード例 #9
0
ファイル: idp.py プロジェクト: tophatmonocle/pysaml2
def _expiration(timeout, tformat="%a, %d-%b-%Y %H:%M:%S GMT"):
    """

    :param timeout:
    :param tformat:
    :return:
    """
    if timeout == "now":
        return time_util.instant(tformat)
    elif timeout == "dawn":
        return time.strftime(tformat, time.gmtime(0))
    else:
        # validity time should match lifetime of assertions
        return time_util.in_a_while(minutes=timeout, format=tformat)
コード例 #10
0
ファイル: assertion.py プロジェクト: tophatmonocle/pysaml2
    def conditions(self, sp_entity_id):
        """ Return a saml.Condition instance

        :param sp_entity_id: The SP entity ID
        :return: A saml.Condition instance
        """
        return factory(saml.Conditions,
                       not_before=instant(),
                       # How long might depend on who's getting it
                       not_on_or_after=self.not_on_or_after(sp_entity_id),
                       audience_restriction=[factory(
                           saml.AudienceRestriction,
                           audience=[factory(saml.Audience,
                                             text=sp_entity_id)])])
コード例 #11
0
ファイル: assertion.py プロジェクト: tophatmonocle/pysaml2
    def conditions(self, sp_entity_id):
        """ Return a saml.Condition instance

        :param sp_entity_id: The SP entity ID
        :return: A saml.Condition instance
        """
        return factory(
            saml.Conditions,
            not_before=instant(),
            # How long might depend on who's getting it
            not_on_or_after=self.not_on_or_after(sp_entity_id),
            audience_restriction=[
                factory(saml.AudienceRestriction,
                        audience=[factory(saml.Audience, text=sp_entity_id)])
            ])
コード例 #12
0
def _expiration(timeout, time_format=None):
    if timeout == "now":
        return time_util.instant(time_format)
    else:
        # validity time should match lifetime of assertions
        return time_util.in_a_while(minutes=timeout, format=time_format)
コード例 #13
0
def test_instant():
    inst = str_to_time(instant())
    now = time.gmtime()

    assert now >= inst
コード例 #14
0
ファイル: s_utils.py プロジェクト: tophatmonocle/pysaml2
def assertion_factory(**kwargs):
    assertion = saml.Assertion(version=VERSION, id=sid(),
                               issue_instant=instant())
    for key, val in kwargs.items():
        setattr(assertion, key, val)
    return assertion
コード例 #15
0
def test_instant():
    inst = str_to_time(instant())
    now = time.gmtime()

    assert now >= inst
コード例 #16
0
ファイル: sp.py プロジェクト: tophatmonocle/pysaml2
def _expiration(timeout, tformat=None):
    if timeout == "now":
        return time_util.instant(tformat)
    else:
        # validity time should match lifetime of assertions
        return time_util.in_a_while(minutes=timeout, format=tformat)