public override void SetUp()
        {
            base.SetUp();

            _securityProviderStub = MockRepository.GenerateStub <ISecurityProvider> ();
            _securityProviderStub.Stub(stub => stub.IsNull).Return(false);

            _securityPrincipalStub = MockRepository.GenerateStub <ISecurityPrincipal> ();
            var principalProviderStub = MockRepository.GenerateStub <IPrincipalProvider> ();

            principalProviderStub.Stub(stub => stub.GetPrincipal()).Return(_securityPrincipalStub);

            _functionalSecurityStrategyStub = MockRepository.GenerateStub <IFunctionalSecurityStrategy> ();
            _objectSecurityStrategyStub     = MockRepository.GenerateStub <IObjectSecurityStrategy> ();

            var serviceLocator = DefaultServiceLocator.Create();

            serviceLocator.RegisterSingle(() => _securityProviderStub);
            serviceLocator.RegisterSingle(() => principalProviderStub);
            serviceLocator.RegisterSingle(() => _functionalSecurityStrategyStub);
            serviceLocator.RegisterMultiple <IWebSecurityAdapter>();
            serviceLocator.RegisterMultiple <IWxeSecurityAdapter> (() => new WxeSecurityAdapter());
            _serviceLocatorScope = new ServiceLocatorScope(serviceLocator);

            _testAccessTypeValue = AccessType.Get(TestAccessTypes.Value);
        }
        private NullSecurityClientTestHelper()
        {
            _mocks = new MockRepository();
            _mockObjectSecurityStrategy = _mocks.StrictMock <IObjectSecurityStrategy>();

            _securableObject = new SecurableObject(_mockObjectSecurityStrategy);
        }
        public void SetUp()
        {
            _context = SecurityContext.Create(typeof(SecurableObject), "owner", "group", "tenant", new Dictionary <string, Enum>(), new Enum[0]);

            _invalidationToken = InvalidationToken.Create();
            _strategy          = ObjectSecurityStrategy.Create(new SerializableSecurityContextFactory(_context), _invalidationToken);
        }
Example #4
0
 protected SecurableObject(IObjectSecurityStrategy securityStrategy)
 {
     _securityStrategy = securityStrategy;
     if (_ctorHandler != null)
     {
         _ctorHandler(this);
     }
 }
        public void ExpectObjectSecurityStrategyHasAccessWithMatchingScope(SecurableObject securableObject, ClientTransactionScope expectedScope)
        {
            IObjectSecurityStrategy objectSecurityStrategy = securableObject.GetSecurityStrategy();

            Expect.Call(objectSecurityStrategy.HasAccess(null, null, null))
            .IgnoreArguments()
            .WhenCalled(mi => CheckScope(expectedScope))
            .Return(true);
        }
Example #6
0
        public IObjectSecurityStrategy GetSecurityStrategy()
        {
            if (_objectSecurityStrategy == null)
            {
                _objectSecurityStrategy = ObjectSecurityStrategy.Create(this, InvalidationToken.Create());
            }

            return(_objectSecurityStrategy);
        }
Example #7
0
        IObjectSecurityStrategy ISecurableObject.GetSecurityStrategy()
        {
            if (_securityStrategy == null)
            {
                _securityStrategy = CreateSecurityStrategy();
            }

            return(_securityStrategy);
        }
Example #8
0
        public void GetSecurityStrategy()
        {
            ISecurableObject group = CreateGroup();

            IObjectSecurityStrategy objectSecurityStrategy = group.GetSecurityStrategy();

            Assert.That(objectSecurityStrategy, Is.Not.Null);
            Assert.IsInstanceOf(typeof(DomainObjectSecurityStrategyDecorator), objectSecurityStrategy);
            DomainObjectSecurityStrategyDecorator domainObjectSecurityStrategyDecorator = (DomainObjectSecurityStrategyDecorator)objectSecurityStrategy;

            Assert.That(domainObjectSecurityStrategyDecorator.RequiredSecurityForStates, Is.EqualTo(RequiredSecurityForStates.None));
        }
        public void Test_AccessedViaDomainObject()
        {
            IObjectSecurityStrategy objectSecurityStrategy = _testHelper.CreateObjectSecurityStrategy();

            _testHelper.AddExtension(_extension);
            _testHelper.ExpectFunctionalSecurityStrategyHasAccess(typeof(SecurableObject), GeneralAccessTypes.Create, true);
            _testHelper.ReplayAll();

            SecurableObject.NewObject(_testHelper.Transaction, objectSecurityStrategy);

            _testHelper.VerifyAll();
        }
Example #10
0
        public void ExpectObjectSecurityStrategyHasAccess(SecurableObject securableObject, Enum accessTypeEnum, HasAccessDelegate doDelegate)
        {
            IObjectSecurityStrategy objectSecurityStrategy = securableObject.GetSecurityStrategy();

            Expect.Call(
                objectSecurityStrategy.HasAccess(
                    Arg.Is(_mockSecurityProvider),
                    Arg.Is(_stubUser),
                    Arg <IReadOnlyList <AccessType> > .List.Equal(new[] { AccessType.Get(accessTypeEnum) })))
            .WhenCalled(mi => CheckTransaction())
            .Do(doDelegate);
        }
Example #11
0
        public DomainObjectSecurityStrategyDecorator(
            IObjectSecurityStrategy innerStrategy,
            IDomainObjectSecurityContextFactory securityContextFactory,
            RequiredSecurityForStates requiredSecurityForStates)
        {
            ArgumentUtility.CheckNotNull("innerStrategy", innerStrategy);
            ArgumentUtility.CheckNotNull("securityContextFactory", securityContextFactory);

            _innerStrategy             = innerStrategy;
            _securityContextFactory    = securityContextFactory;
            _requiredSecurityForStates = requiredSecurityForStates;
        }
Example #12
0
        public void GetSecurityStrategy()
        {
            ISecurableObject tenant = TestHelper.CreateTenant("Tenant", "UID: Tenant");

            IObjectSecurityStrategy objectSecurityStrategy = tenant.GetSecurityStrategy();

            Assert.That(objectSecurityStrategy, Is.Not.Null);
            Assert.IsInstanceOf(typeof(DomainObjectSecurityStrategyDecorator), objectSecurityStrategy);
            DomainObjectSecurityStrategyDecorator domainObjectSecurityStrategyDecorator = (DomainObjectSecurityStrategyDecorator)objectSecurityStrategy;

            Assert.That(domainObjectSecurityStrategyDecorator.RequiredSecurityForStates, Is.EqualTo(RequiredSecurityForStates.None));
        }
Example #13
0
 IObjectSecurityStrategy ISecurableObject.GetSecurityStrategy()
 {
     if (_domainObjectSecurityStrategy == null)
     {
         _domainObjectSecurityStrategy =
             new InstanceBasedReEntrancyGuardedObjectSecurityStrategyDecorator(
                 new DomainObjectSecurityStrategyDecorator(
                     ObjectSecurityStrategy.Create(this, InvalidationToken.Create()),
                     this,
                     RequiredSecurityForStates.NewAndDeleted));
     }
     return(_domainObjectSecurityStrategy);
 }
        public void SetUp()
        {
            _securityProviderMock       = MockRepository.GenerateStrictMock <ISecurityProvider>();
            _securityContextFactoryStub = MockRepository.GenerateStub <ISecurityContextFactory>();

            _principalStub = MockRepository.GenerateStub <ISecurityPrincipal>();
            _principalStub.Stub(_ => _.User).Return("user");
            _context = SecurityContext.Create(typeof(SecurableObject), "owner", "group", "tenant", new Dictionary <string, Enum>(), new Enum[0]);
            _securityContextFactoryStub.Stub(_ => _.CreateSecurityContext()).Return(_context);

            _invalidationToken = InvalidationToken.Create();
            _strategy          = ObjectSecurityStrategy.Create(_securityContextFactoryStub, _invalidationToken);
        }
Example #15
0
        public override void SetUp()
        {
            base.SetUp();

            _mocks = new MockRepository();
            _mockObjectSecurityStrategy = _mocks.StrictMock <IObjectSecurityStrategy>();
            _stubSecurityProvider       = _mocks.StrictMock <ISecurityProvider>();
            _stubContextFactory         = _mocks.StrictMock <IDomainObjectSecurityContextFactory>();

            _stubUser = _mocks.Stub <ISecurityPrincipal>();
            SetupResult.For(_stubUser.User).Return("user");
            _accessTypeResult = new[] { AccessType.Get(GeneralAccessTypes.Read), AccessType.Get(GeneralAccessTypes.Edit) };
        }
Example #16
0
        // construction and disposing

        public WebPermissionProviderTestHelper()
        {
            _mocks = new MockRepository();

            _mockSecurityProvider = _mocks.StrictMock <ISecurityProvider>();
            SetupResult.For(_mockSecurityProvider.IsNull).Return(false);
            _mockObjectSecurityStrategy     = _mocks.StrictMock <IObjectSecurityStrategy>();
            _mockFunctionalSecurityStrategy = _mocks.StrictMock <IFunctionalSecurityStrategy>();
            _mockWxeSecurityAdapter         = _mocks.StrictMock <IWxeSecurityAdapter>();

            _stubUser = _mocks.Stub <ISecurityPrincipal>();
            SetupResult.For(_stubUser.User).Return("user");
            _mockPrincipalProvider = _mocks.StrictMock <IPrincipalProvider>();
            SetupResult.For(_mockPrincipalProvider.GetPrincipal()).Return(_stubUser);
        }
Example #17
0
        public void GetSecurityStrategy()
        {
            OrganizationalStructureTestHelper testHelper = new OrganizationalStructureTestHelper();

            using (testHelper.Transaction.EnterNonDiscardingScope())
            {
                ISecurableObject position = testHelper.CreatePosition("PositionName");

                IObjectSecurityStrategy objectSecurityStrategy = position.GetSecurityStrategy();
                Assert.That(objectSecurityStrategy, Is.Not.Null);
                Assert.IsInstanceOf(typeof(DomainObjectSecurityStrategyDecorator), objectSecurityStrategy);
                DomainObjectSecurityStrategyDecorator domainObjectSecurityStrategyDecorator = (DomainObjectSecurityStrategyDecorator)objectSecurityStrategy;
                Assert.That(domainObjectSecurityStrategyDecorator.RequiredSecurityForStates, Is.EqualTo(RequiredSecurityForStates.None));
            }
        }
        public SecurityClientTestHelper()
        {
            _mocks = new MockRepository();
            _mockSecurityProvider           = _mocks.StrictMock <ISecurityProvider>();
            _mockPermissionReflector        = _mocks.StrictMock <IPermissionProvider>();
            _mockObjectSecurityStrategy     = _mocks.StrictMock <IObjectSecurityStrategy>();
            _mockFunctionalSecurityStrategy = _mocks.StrictMock <IFunctionalSecurityStrategy>();
            _mockMemberResolver             = _mocks.StrictMock <IMemberResolver>();
            _userStub = _mocks.Stub <ISecurityPrincipal>();
            SetupResult.For(_userStub.User).Return("user");
            _stubPrincipalProvider = _mocks.Stub <IPrincipalProvider>();
            SetupResult.For(_stubPrincipalProvider.GetPrincipal()).Return(_userStub);

            _securableObject = new SecurableObject(_mockObjectSecurityStrategy);
        }
Example #19
0
        public static SecurableObject NewObject(ClientTransaction clientTransaction, IObjectSecurityStrategy securityStrategy, Action <SecurableObject> ctorHandler = null)
        {
            var previousCtorHandler = _ctorHandler;

            _ctorHandler = ctorHandler;

            try
            {
                using (clientTransaction.EnterNonDiscardingScope())
                {
                    return(NewObject <SecurableObject> (ParamList.Create(securityStrategy)));
                }
            }
            finally
            {
                _ctorHandler = previousCtorHandler;
            }
        }
        public override void SetUp()
        {
            base.SetUp();

            _objectSecurityStrategyMock = MockRepository.GenerateStrictMock <IObjectSecurityStrategy>();

            _securableObject = new SecurableClassWithReferenceType <string> (_objectSecurityStrategyMock);

            _securityProviderStub = MockRepository.GenerateStub <ISecurityProvider>();

            _principalStub = MockRepository.GenerateStub <ISecurityPrincipal>();
            var principalProviderStub = MockRepository.GenerateStub <IPrincipalProvider>();

            principalProviderStub.Stub(_ => _.GetPrincipal()).Return(_principalStub);

            var serviceLocator = DefaultServiceLocator.Create();

            serviceLocator.RegisterSingle(() => _securityProviderStub);
            serviceLocator.RegisterSingle(() => principalProviderStub);
            _serviceLocatorScope = new ServiceLocatorScope(serviceLocator);

            _strategy = new SecurityBasedBindablePropertyReadAccessStrategy();
        }
        public void SetUp()
        {
            _securityAdapter = new WxeSecurityAdapter();

            _mocks = new MockRepository();

            _mockSecurityProvider = _mocks.StrictMock <ISecurityProvider> ();
            SetupResult.For(_mockSecurityProvider.IsNull).Return(false);
            _stubUser = _mocks.Stub <ISecurityPrincipal> ();
            SetupResult.For(_stubUser.User).Return("user");
            _mockPrincipalProvider = _mocks.StrictMock <IPrincipalProvider> ();
            SetupResult.For(_mockPrincipalProvider.GetPrincipal()).Return(_stubUser);

            _mockObjectSecurityStrategy     = _mocks.StrictMock <IObjectSecurityStrategy> ();
            _mockFunctionalSecurityStrategy = _mocks.StrictMock <IFunctionalSecurityStrategy> ();

            var serviceLocator = DefaultServiceLocator.Create();

            serviceLocator.RegisterSingle(() => _mockSecurityProvider);
            serviceLocator.RegisterSingle(() => _mockPrincipalProvider);
            serviceLocator.RegisterSingle(() => _mockFunctionalSecurityStrategy);
            _serviceLocatorScope = new ServiceLocatorScope(serviceLocator);
        }
Example #22
0
        // static members

        // member fields

        // construction and disposing

        public DerivedSecurableObject(IObjectSecurityStrategy securityStrategy)
            : base(securityStrategy)
        {
        }
 public static BindableSecurableObject NewObject(ClientTransaction clientTransaction, IObjectSecurityStrategy securityStrategy)
 {
     using (clientTransaction.EnterNonDiscardingScope())
     {
         return(NewObject <BindableSecurableObject> (ParamList.Create(securityStrategy)));
     }
 }
 public SecurableClassWithProperties(IObjectSecurityStrategy securityStrategy)
 {
     _securityStrategy = securityStrategy;
 }
Example #25
0
 public DerivedSecurableClassWithProperties(IObjectSecurityStrategy securityStrategy)
     : base(securityStrategy)
 {
 }
 protected BindableSecurableObject(IObjectSecurityStrategy securityStrategy)
 {
     _securityStrategy = securityStrategy;
 }
 protected override void OnLoaded(LoadMode loadMode)
 {
     base.OnLoaded(loadMode);
     _securityStrategy = ObjectSecurityStrategy.Create(this, InvalidationToken.Create());
 }
 public SecurableClassWithReferenceType(IObjectSecurityStrategy objectSecurityStrategy)
 {
     _objectSecurityStrategy = objectSecurityStrategy;
 }
Example #29
0
        public InstanceBasedReEntrancyGuardedObjectSecurityStrategyDecorator(IObjectSecurityStrategy objectSecurityStrategy)
        {
            ArgumentUtility.CheckNotNull("objectSecurityStrategy", objectSecurityStrategy);

            _objectSecurityStrategy = objectSecurityStrategy;
        }
 public SecurableObject(IObjectSecurityStrategy securityStrategy)
 {
     _securityStrategy = securityStrategy;
 }