/*
* Copyright 2005 the original author or authors.
- *
+ *
* Licensed 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.
*/
-
package org.wamblee.security.authorization.hibernate;
-import java.sql.SQLException;
-
import org.apache.log4j.Logger;
+
import org.hibernate.cfg.Configuration;
+
import org.hibernate.dialect.MySQL5Dialect;
import org.hibernate.dialect.MySQL5InnoDBDialect;
+
import org.hibernate.tool.hbm2ddl.SchemaExport;
+
import org.springframework.orm.hibernate3.HibernateTemplate;
+
import org.wamblee.general.BeanKernel;
+
import org.wamblee.security.authorization.AuthorizationService;
import org.wamblee.security.authorization.AuthorizationServiceTest;
import org.wamblee.security.authorization.TestUserAccessor;
+
import org.wamblee.system.adapters.ClassConfiguration;
import org.wamblee.system.adapters.ClassConfigurationTest;
import org.wamblee.system.adapters.DefaultContainer;
import org.wamblee.system.core.Scope;
import org.wamblee.system.spring.component.DatabaseTesterComponent;
import org.wamblee.system.spring.component.DatasourceComponent;
+
import org.wamblee.usermgt.UserAccessor;
import org.wamblee.usermgt.hibernate.AuthorizationComponent;
import org.wamblee.usermgt.hibernate.HibernateUserAdministrationTest;
import org.wamblee.usermgt.hibernate.UserAdministrationComponent;
+import java.sql.SQLException;
+
/**
* Unit test for the persistent authorization service.
*
* @author Erik Brakkee
*/
public class PersistentAuthorizationServiceTest extends
- AuthorizationServiceTest {
-
+ AuthorizationServiceTest {
private static final Logger LOGGER = Logger
- .getLogger(PersistentAuthorizationServiceTest.class);
+ .getLogger(PersistentAuthorizationServiceTest.class);
private static final String SERVICE_TABLE = "AUTHORIZATION_SERVICE";
+
private static final String RULES_TABLE = "AUTHORIZATION_RULES";
+
private static final String SERVICE_RULES_TABLE = "AUTHORIZATION_SERVICE_RULES";
+
private static final String OPERATIONCOND_TABLE = "OPERATION_CONDITIONS";
+
private static final String PATHCOND_TABLE = "PATH_CONDITIONS";
+
private static final String USERCOND_TABLE = "USER_CONDITIONS";
- private DefaultContainer _container;
- private Scope _scope;
+ private DefaultContainer container;
+
+ private Scope scope;
+
+ private DatabaseTesterComponent databaseTester;
+
+ private UserAccessor userAccessor;
+
+ private HibernateTemplate hibernateTemplate;
- private DatabaseTesterComponent _databaseTester;
- private UserAccessor _userAccessor;
- private HibernateTemplate _hibernateTemplate;
- private AuthorizationService _authorizationService;
+ private AuthorizationService authorizationService;
@Override
protected void setUp() throws Exception {
+ container = new DefaultContainer("top");
+ DatabaseComponentFactory.addDatabaseConfig(container);
+ container.addComponent(new DatasourceComponent("datasource"));
- _container = new DefaultContainer("top");
- DatabaseComponentFactory.addDatabaseConfig(_container);
- _container.addComponent(new DatasourceComponent("datasource"));
ClassConfiguration useraccessorConfig = new ClassConfiguration(
- TestUserAccessor.class);
+ TestUserAccessor.class);
useraccessorConfig.getObjectConfig().getSetterConfig().initAllSetters();
- _container.addComponent("userAccessor", useraccessorConfig);
- _container.addComponent(new AuthorizationComponent("authorization",
- true));
+ container.addComponent("userAccessor", useraccessorConfig);
+ container
+ .addComponent(new AuthorizationComponent("authorization", true));
ClassConfiguration dbtesterConfig = new ClassConfiguration(
- DatabaseTesterComponent.class);
+ DatabaseTesterComponent.class);
dbtesterConfig.getObjectConfig().getSetterConfig().initAllSetters();
- _container.addComponent("databaseTester", dbtesterConfig);
+ container.addComponent("databaseTester", dbtesterConfig);
ObjectConfiguration config = new ObjectConfiguration(
- PersistentAuthorizationServiceTest.class);
+ PersistentAuthorizationServiceTest.class);
config.getSetterConfig().clear().add("setUserAccessor").add(
- "setDatabaseTester").add("setHibernateTemplate").add(
- "setAuthorizationService");
- _container.addComponent("testcase", this, config);
+ "setDatabaseTester").add("setHibernateTemplate").add(
+ "setAuthorizationService");
+ container.addComponent("testcase", this, config);
- _scope = _container.start();
+ scope = container.start();
- _databaseTester.cleanDatabase();
+ databaseTester.cleanDatabase();
super.setUp();
}
public void setDatabaseTester(DatabaseTesterComponent aDatabaseTester) {
- _databaseTester = aDatabaseTester;
+ databaseTester = aDatabaseTester;
}
public void setUserAccessor(UserAccessor aUserAccessor) {
- _userAccessor = aUserAccessor;
+ userAccessor = aUserAccessor;
}
public void setHibernateTemplate(HibernateTemplate aHibernateTemplate) {
- _hibernateTemplate = aHibernateTemplate;
+ hibernateTemplate = aHibernateTemplate;
}
public void setAuthorizationService(
- AuthorizationService aAuthorizationService) {
- _authorizationService = aAuthorizationService;
+ AuthorizationService aAuthorizationService) {
+ authorizationService = aAuthorizationService;
}
/*
@Override
protected AuthorizationService createService() {
PersistentAuthorizationService service = new PersistentAuthorizationService(
- "DEFAULT", _hibernateTemplate, createUserAccessor(), 10000);
+ "DEFAULT", hibernateTemplate, createUserAccessor(), 10000);
+
return service;
}
@Override
protected void checkRuleCount(int aCount) {
try {
- assertEquals(1, _databaseTester.getTableSize(SERVICE_TABLE));
- assertEquals(aCount, _databaseTester.getTableSize(RULES_TABLE));
- assertEquals(aCount, _databaseTester
- .getTableSize(SERVICE_RULES_TABLE));
- assertEquals(aCount, _databaseTester.getTableSize(USERCOND_TABLE));
- assertEquals(aCount, _databaseTester.getTableSize(PATHCOND_TABLE));
- assertEquals(aCount, _databaseTester
- .getTableSize(OPERATIONCOND_TABLE));
+ assertEquals(1, databaseTester.getTableSize(SERVICE_TABLE));
+ assertEquals(aCount, databaseTester.getTableSize(RULES_TABLE));
+ assertEquals(aCount, databaseTester
+ .getTableSize(SERVICE_RULES_TABLE));
+ assertEquals(aCount, databaseTester.getTableSize(USERCOND_TABLE));
+ assertEquals(aCount, databaseTester.getTableSize(PATHCOND_TABLE));
+ assertEquals(aCount, databaseTester
+ .getTableSize(OPERATIONCOND_TABLE));
} catch (SQLException e) {
throw new RuntimeException(e);
}
-
}
- public void testSchemaExport() {
+ public void testSchemaExport() {
Configuration config = new Configuration();
- for (String mappingFile: new AuthorizationMappingFiles()) {
- config.addResource(mappingFile);
+
+ for (String mappingFile : new AuthorizationMappingFiles()) {
+ config.addResource(mappingFile);
}
- config.setProperty("hibernate.dialect", MySQL5InnoDBDialect.class.getName());
+
+ config.setProperty("hibernate.dialect", MySQL5InnoDBDialect.class
+ .getName());
+
SchemaExport exporter = new SchemaExport(config);
exporter.setOutputFile("target/mysql5.schema.sql");
- exporter.create(true,false);
+ exporter.create(true, false);
}
public void testPerformance() {
-
PersistentAuthorizationService service = (PersistentAuthorizationService) getService();
int n = 1000;
long time = System.currentTimeMillis();
+
for (int i = 0; i < n; i++) {
testFirstRuleGrants();
resetTestRules();
resetTestRules();
testNoRulesSupportResource();
}
- LOGGER.info("Executed " + 4 * n + " authorization checks in "
- + (float) (System.currentTimeMillis() - time) / (float) 1000
- + " seconds.");
+
+ LOGGER.info("Executed " + (4 * n) + " authorization checks in " +
+ ((float) (System.currentTimeMillis() - time) / (float) 1000) +
+ " seconds.");
}
}