Author: gk
Date: Tue May 23 06:39:57 2017
New Revision: 1795880
URL: http://svn.apache.org/viewvc?rev=1795880&view=rev
Log:
- Update to security 1.1.1
- Added tests for security service using Fulcrum turbine model defaults,
comparing Fulcrum and turbine security service.
Added:
turbine/core/trunk/src/test/org/apache/turbine/services/security/
turbine/core/trunk/src/test/org/apache/turbine/services/security/SecurityServiceTest.java
(with props)
turbine/core/trunk/src/test/org/apache/turbine/services/security/TurbineDefaultModelManagerTest.java
(with props)
Modified:
turbine/core/trunk/conf/test/TestFulcrumComponents.properties
turbine/core/trunk/pom.xml
Modified: turbine/core/trunk/conf/test/TestFulcrumComponents.properties
URL:
http://svn.apache.org/viewvc/turbine/core/trunk/conf/test/TestFulcrumComponents.properties?rev=1795880&r1=1795879&r2=1795880&view=diff
==============================================================================
--- turbine/core/trunk/conf/test/TestFulcrumComponents.properties (original)
+++ turbine/core/trunk/conf/test/TestFulcrumComponents.properties Tue May 23
06:39:57 2017
@@ -68,6 +68,7 @@ services.ServletService.classname=org.ap
services.AssemblerBrokerService.classname=org.apache.turbine.services.assemblerbroker.TurbineAssemblerBrokerService
services.PullService.classname=org.apache.turbine.services.pull.TurbinePullService
services.TemplateService.classname=org.apache.turbine.services.template.TurbineTemplateService
+services.SecurityService.classname=org.apache.turbine.services.security.DefaultSecurityService
services.SchedulerService.classname=org.apache.turbine.services.schedule.QuartzSchedulerService
Modified: turbine/core/trunk/pom.xml
URL:
http://svn.apache.org/viewvc/turbine/core/trunk/pom.xml?rev=1795880&r1=1795879&r2=1795880&view=diff
==============================================================================
--- turbine/core/trunk/pom.xml (original)
+++ turbine/core/trunk/pom.xml Tue May 23 06:39:57 2017
@@ -919,16 +919,25 @@
<artifactId>avalon-logkit</artifactId>
</exclusion>
</exclusions>
- </dependency>
+ </dependency>
+ <!-- using snapshot, until released -->
<dependency>
<groupId>org.apache.fulcrum</groupId>
<artifactId>fulcrum-security-api</artifactId>
- <version>1.1.0</version>
+ <version>1.1.1</version>
</dependency>
+ <!-- using snapshot, until released -->
<dependency>
<groupId>org.apache.fulcrum</groupId>
<artifactId>fulcrum-security-memory</artifactId>
- <version>1.1.0</version>
+ <version>1.1.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.fulcrum</groupId>
+ <artifactId>fulcrum-security-api</artifactId>
+ <version>1.1.1</version>
+ <classifier>tests</classifier>
<scope>test</scope>
</dependency>
<dependency>
@@ -1021,6 +1030,12 @@
<version>2.0.2-beta</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.fulcrum</groupId>
+ <artifactId>fulcrum-testcontainer</artifactId>
+ <version>1.0.7</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<profiles>
Added:
turbine/core/trunk/src/test/org/apache/turbine/services/security/SecurityServiceTest.java
URL:
http://svn.apache.org/viewvc/turbine/core/trunk/src/test/org/apache/turbine/services/security/SecurityServiceTest.java?rev=1795880&view=auto
==============================================================================
---
turbine/core/trunk/src/test/org/apache/turbine/services/security/SecurityServiceTest.java
(added)
+++
turbine/core/trunk/src/test/org/apache/turbine/services/security/SecurityServiceTest.java
Tue May 23 06:39:57 2017
@@ -0,0 +1,183 @@
+package org.apache.turbine.services.security;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.fulcrum.security.SecurityService;
+import org.apache.fulcrum.security.entity.Group;
+import org.apache.fulcrum.security.entity.Role;
+import org.apache.fulcrum.security.model.turbine.TurbineModelManager;
+import org.apache.fulcrum.security.model.turbine.entity.TurbineUser;
+import org.apache.fulcrum.security.model.turbine.entity.TurbineUserGroupRole;
+import org.apache.fulcrum.security.model.turbine.entity.impl.TurbineUserImpl;
+import
org.apache.fulcrum.security.model.turbine.test.AbstractTurbineModelManagerTest;
+import org.apache.fulcrum.security.util.DataBackendException;
+import org.apache.fulcrum.security.util.EntityExistsException;
+import org.apache.fulcrum.security.util.UnknownEntityException;
+import org.apache.fulcrum.testcontainer.BaseUnit4Test;
+import org.apache.turbine.om.security.User;
+import org.apache.turbine.services.ServiceManager;
+import org.apache.turbine.services.TurbineServices;
+import org.apache.turbine.util.TurbineConfig;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Test that the SecurityService works properly by comparing behaviour of
Turbine and Fulcrum security services using memory user manager.
+ *
+ * Code adapted from SecurityServiceAdapter in Fulcrum Security Adapter
+ *
+ * @author gkallidis
+ * @version $Id$
+ */
+
+public class SecurityServiceTest extends BaseUnit4Test
+{
+
+ SecurityService fulcrumSecurityService;
+ org.apache.turbine.services.security.SecurityService securityService;
+ static TurbineConfig tc;
+
+
+ @BeforeClass
+ public static void init() throws Exception
+ {
+ tc = new TurbineConfig(".",
"/conf/test/CompleteTurbineResources.properties");
+ tc.initialize();
+
+ }
+
+ @Before
+ public void setUpBefore() throws Exception
+ {
+
+ ServiceManager serviceManager = TurbineServices.getInstance();
+ //
+ fulcrumSecurityService = (SecurityService)
serviceManager.getService(SecurityService.ROLE);
+
+ securityService =
(org.apache.turbine.services.security.SecurityService)
+
TurbineServices.getInstance().getService(org.apache.turbine.services.security.SecurityService.SERVICE_NAME);
+ }
+
+ @Test
+ public void testAccountExists() throws Exception
+ {
+
+ User user = new org.apache.turbine.om.security.DefaultUserImpl(new
TurbineUserImpl());
+ user.setAccessCounter(5);
+
+ assertFalse(securityService.accountExists(user));
+ assertFalse(fulcrumSecurityService.getUserManager().checkExists(user));
+
+ }
+ @Test
+ public void testCreateUser() throws Exception
+ {
+
+ User user = new
org.apache.turbine.om.security.DefaultUserImpl(new TurbineUserImpl());
+ user.setAccessCounter(5);
+ user.setName("ringo");
+ securityService.addUser(user,"fakepasswrod");
+ assertTrue(securityService.accountExists(user));
+
assertTrue(fulcrumSecurityService.getUserManager().checkExists(user));
+
+ }
+
+ /**
+ * Tests Turbine and Fulcrum.
+ *
+ * Fulcrum part is similar/duplicated from {@link
AbstractTurbineModelManagerTest#testGrantUserGroupRole()}
+ *
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testGrantUserGroupRole() throws Exception
+ {
+ Group group =
fulcrumSecurityService.getGroupManager().getGroupInstance();
+ group.setName("TEST_GROUP");
+ fulcrumSecurityService.getGroupManager().addGroup(group);
+ Role role = fulcrumSecurityService.getRoleManager().getRoleInstance();
+ role.setName("TEST_Role");
+ fulcrumSecurityService.getRoleManager().addRole(role);
+
+ // Turbine security service returns a wrapped instance:
org.apache.turbine.om.security.DefaultUserImpl
+ // which implements org.apache.turbine.om.security.User and contains
+ User user = securityService.getUserInstance("Clint");
+ // memory
+ securityService.addUser(user, "clint");
+ securityService.grant(user, group, role);
+
+ addUserAndCheck(group, role, user);
+
+ // Fulcrum security service returns a raw
org.apache.fulcrum.security.model.turbine.entity.impl.TurbineUserImpl,
+ org.apache.fulcrum.security.UserManager userManager =
fulcrumSecurityService.getUserManager();
+ org.apache.fulcrum.security.entity.User fulcrumUser =
userManager.getUserInstance("Clint2");
+ userManager.addUser(fulcrumUser, "clint2"); // memory
+
((TurbineModelManager)fulcrumSecurityService.getModelManager()).grant(fulcrumUser,
group, role);
+
+ addUserAndCheck(group, role, fulcrumUser);
+
+ }
+
+ /**
+ * Fulcrum contract check
+ *
+ * @param group Fulcrum interface
+ * @param role Fulcrum interface
+ * @param user Fulcrum interface
+ * @throws EntityExistsException
+ * @throws DataBackendException
+ * @throws UnknownEntityException
+ */
+ private void addUserAndCheck(Group group, Role role,
org.apache.fulcrum.security.entity.User user)
+ throws EntityExistsException, DataBackendException,
+ UnknownEntityException
+ {
+
+ boolean ugrFound = false;
+ TurbineUserGroupRole ugrTest = null;
+ for (TurbineUserGroupRole ugr : ((TurbineUser)
user).getUserGroupRoleSet())
+ {
+ if (ugr.getUser().equals(user) && ugr.getGroup().equals(group) &&
ugr.getRole().equals(role))
+ {
+ ugrFound = true;
+ ugrTest = ugr;
+ break;
+ }
+ }
+ assertTrue(ugrFound);
+ assertTrue(ugrTest.getGroup().equals(group));
+ assertTrue(ugrTest.getUser().equals(user));
+ }
+
+
+ @AfterClass
+ public static void setupAfter()
+ {
+ ServiceManager serviceManager = TurbineServices.getInstance();
+
serviceManager.shutdownService(org.apache.turbine.services.security.SecurityService.SERVICE_NAME);
+ serviceManager.shutdownServices();
+ }
+
+
+}
Propchange:
turbine/core/trunk/src/test/org/apache/turbine/services/security/SecurityServiceTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
turbine/core/trunk/src/test/org/apache/turbine/services/security/TurbineDefaultModelManagerTest.java
URL:
http://svn.apache.org/viewvc/turbine/core/trunk/src/test/org/apache/turbine/services/security/TurbineDefaultModelManagerTest.java?rev=1795880&view=auto
==============================================================================
---
turbine/core/trunk/src/test/org/apache/turbine/services/security/TurbineDefaultModelManagerTest.java
(added)
+++
turbine/core/trunk/src/test/org/apache/turbine/services/security/TurbineDefaultModelManagerTest.java
Tue May 23 06:39:57 2017
@@ -0,0 +1,74 @@
+package org.apache.turbine.services.security;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import static org.junit.Assert.fail;
+
+import
org.apache.fulcrum.security.model.turbine.test.AbstractTurbineModelManagerTest;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Test Fulcrum Integration.
+ *
+ * Stub for further tests, relying on Fulcrum.
+ *
+ * @author gkallidis
+ * @version $Id:$
+ */
+public class TurbineDefaultModelManagerTest
+ extends AbstractTurbineModelManagerTest
+{
+
+ @Override
+ @Before
+ public void setUp() throws Exception
+ {
+ try
+ {
+ // just Fulcrum
+
setConfigurationFileName("conf/test/fulcrumComponentConfiguration.xml");
+ setRoleFileName("conf/test/fulcrumRoleConfiguration.xml");
+ super.setUp();
+
+ }
+ catch (Exception e)
+ {
+ fail(e.toString());
+ }
+
+ }
+
+ @Test
+ public void testDummy() {
+ // all tests in abstract
+ }
+
+
+
+ @Override
+ @After
+ public void tearDown()
+ {
+ modelManager = null;
+ securityService = null;
+ }
+
+}
Propchange:
turbine/core/trunk/src/test/org/apache/turbine/services/security/TurbineDefaultModelManagerTest.java
------------------------------------------------------------------------------
svn:eol-style = native