示例#1
0
def default_subject_context(configured_securityutils, subject_context,
                            full_mock_account, mock_session):
    csu = configured_securityutils
    context = {
        value: 'value_' + value
        for key, value in subject_context.items()
    }
    context["DefaultSubjectContext.ACCOUNT"] = full_mock_account
    context["DefaultSubjectContext.AUTHENTICATED"] = False
    return DefaultSubjectContext(security_utils=csu, context=context)
示例#2
0
def test_nsm_create_subject_w_context(native_security_manager, yosai):
    """
    unit tested:  create_subject

    test case:
    context is passed as an argument, and so it is used
    """
    nsm = native_security_manager

    testcontext = DefaultSubjectContext(yosai=yosai, security_manager=nsm)
    testcontext.authenticated = True
    testcontext.authentication_token = 'dumb_token'
    testcontext.account_id = 'dumb_account'
    testcontext.subject = 'existing_subject'

    with mock.patch.object(nsm, 'ensure_security_manager') as nsm_esm:
        nsm_esm.return_value = testcontext
        with mock.patch.object(nsm, 'resolve_session') as nsm_rs:
            nsm_rs.return_value = testcontext
            with mock.patch.object(nsm, 'resolve_identifiers') as nsm_rp:
                nsm_rp.return_value = testcontext
                with mock.patch.object(nsm, 'do_create_subject') as nsm_dcs:
                    nsm_dcs.return_value = None
                    with mock.patch.object(nsm, 'save') as nsm_save:
                        nsm_save.return_value = None

                        nsm.create_subject(subject_context=testcontext)

                        nsm_esm.assert_called_once_with(testcontext)
                        nsm_rs.assert_called_once_with(testcontext)
                        nsm_rp.assert_called_once_with(testcontext)
                        nsm_dcs.assert_called_once_with(testcontext)
示例#3
0
def test_sb_init_verify_generated_context(
        subject_builder_context, configured_securityutils):
    """
    unit tested:  __init__

    test case:
    confirm that the subject context created by init reflects the arguments
    passed to the builder
    """
    csu = configured_securityutils
    sbc = subject_builder_context
    sb = SubjectBuilder(security_utils=csu, **sbc)
    sb.resolve_subject_context()
    mycontext = DefaultSubjectContext(security_utils=csu, context=sbc)
    assert (sb.subject_context == mycontext)
示例#4
0
def test_sb_init_verify_argument_context(subject_builder_context, configured_securityutils):
    """
    unit tested:  __init__ and context_attribute

    test case:
    when a subject_context argument is passed into init, any context attribute
    arguments aren't used by init
    """
    sbc = subject_builder_context
    csu = configured_securityutils
    mycontext = DefaultSubjectContext(security_utils=csu,
                                      context=sbc)
    sb = SubjectBuilder(security_utils=csu, subject_context=mycontext, **sbc)
    sb.resolve_subject_context()
    assert (sb.subject_context == mycontext)
示例#5
0
def test_nsm_create_subject_wo_context(
        native_security_manager, yosai):
    """
    unit tested:  create_subject

    test case:
    When no subject_context argument is given, a new subject_context is
    created.  The subject_context is used to create a new subject, which is
    saved and then returned.
    """
    nsm = native_security_manager

    testcontext = DefaultSubjectContext(yosai=yosai, security_manager=nsm)
    testcontext.authenticated = True
    testcontext.authentication_token = 'dumb_token'
    testcontext.account_id = 'dumb_account'
    testcontext.subject = 'existing_subject'

    with mock.patch.object(nsm, 'ensure_security_manager') as nsm_esm:
        nsm_esm.return_value = testcontext
        with mock.patch.object(nsm, 'resolve_session') as nsm_rs:
            nsm_rs.return_value = testcontext
            with mock.patch.object(nsm, 'resolve_identifiers') as nsm_rp:
                nsm_rp.return_value = testcontext
                with mock.patch.object(nsm, 'do_create_subject') as nsm_dcs:
                    nsm_dcs.return_value = 'subject'
                    with mock.patch.object(nsm, 'save') as nsm_save:
                        nsm_save.return_value = None

                        result = nsm.create_subject(authc_token='dumb_token',
                                                    account_id='dumb_account',
                                                    existing_subject='existing_subject')

                        nsm_esm.assert_called_once_with(testcontext)
                        nsm_rs.assert_called_once_with(testcontext)
                        nsm_rp.assert_called_once_with(testcontext)
                        nsm_dcs.assert_called_once_with(testcontext)
                        assert result == 'subject'
示例#6
0
 def create_subject_context(self, existing_subject):
     if not hasattr(self, 'yosai'):
         msg = "SecurityManager has no Yosai attribute set."
         raise AttributeError(msg)
     return DefaultSubjectContext(self.yosai, self)
示例#7
0
def subject_context(yosai):
    return DefaultSubjectContext(yosai=yosai, security_manager=yosai.security_manager)
示例#8
0
文件: mgt.py 项目: hoatle/yosai
 def copy(self, subject_context):
     return DefaultSubjectContext(security_utils=self.security_utils,
                                  context=subject_context)
示例#9
0
文件: mgt.py 项目: hoatle/yosai
 def create_subject_context(self):
     if not hasattr(self, 'security_utils'):
         msg = "SecurityManager has no SecurityUtils attribute set."
         raise MisconfiguredException(msg)
     return DefaultSubjectContext(security_utils=self.security_utils)