This commit is contained in:
parent
bef8474114
commit
1d410a6ede
|
@ -1,7 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<PrivilegeContainer>
|
||||
|
||||
<PersistenceHandler class="ch.eitchnet.privilege.handler.DefaultPersistenceHandler">
|
||||
<PrivilegeHandler class="ch.eitchnet.privilege.handler.DefaultPrivilegeHandler" />
|
||||
|
||||
<EncryptionHandler class="ch.eitchnet.privilege.handler.DefaultEncryptionHandler">
|
||||
<Parameters>
|
||||
<Parameter name="hashAlgorithm" value="SHA-256" />
|
||||
</Parameters>
|
||||
</EncryptionHandler>
|
||||
|
||||
<PersistenceHandler class="ch.eitchnet.privilege.handler.XmlPersistenceHandler">
|
||||
<Parameters>
|
||||
<Parameter name="basePath" value="./config" />
|
||||
<Parameter name="usersXmlFile" value="PrivilegeUsers.xml" />
|
||||
|
@ -11,14 +19,4 @@
|
|||
</Parameters>
|
||||
</PersistenceHandler>
|
||||
|
||||
<SessionHandler class="ch.eitchnet.privilege.handler.DefaultSessionHandler" />
|
||||
|
||||
<ModelHandler class="ch.eitchnet.privilege.handler.DefaultModelHandler" />
|
||||
|
||||
<EncryptionHandler class="ch.eitchnet.privilege.handler.DefaultEncryptionHandler">
|
||||
<Parameters>
|
||||
<Parameter name="hashAlgorithm" value="SHA-256" />
|
||||
</Parameters>
|
||||
</EncryptionHandler>
|
||||
|
||||
</PrivilegeContainer>
|
|
@ -27,14 +27,14 @@ import ch.eitchnet.privilege.i18n.PrivilegeException;
|
|||
* @author rvonburg
|
||||
*
|
||||
*/
|
||||
public class ConfigurationHelper {
|
||||
public class InitializationHelper {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(ConfigurationHelper.class);
|
||||
private static final Logger logger = Logger.getLogger(InitializationHelper.class);
|
||||
|
||||
/**
|
||||
* @param privilegeContainerXmlFile
|
||||
*/
|
||||
public static void initializeFromXml(File privilegeContainerXmlFile) {
|
||||
public static PrivilegeHandler initializeFromXml(File privilegeContainerXmlFile) {
|
||||
|
||||
// make sure file exists
|
||||
if (!privilegeContainerXmlFile.exists()) {
|
||||
|
@ -103,6 +103,8 @@ public class ConfigurationHelper {
|
|||
logger.error(e, e);
|
||||
throw new PrivilegeException("PrivilegeHandler " + privilegeHandlerClassName + " could not be initialized");
|
||||
}
|
||||
|
||||
return privilegeHandler;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -114,7 +116,16 @@ public class ConfigurationHelper {
|
|||
|
||||
Map<String, String> parameterMap = new HashMap<String, String>();
|
||||
|
||||
// if element is null then there are no parameters, so return empty map
|
||||
if (element == null)
|
||||
return parameterMap;
|
||||
|
||||
List<Element> elements = element.elements(XmlConstants.XML_PARAMETER);
|
||||
|
||||
// if elements is null or empty then there are no parameters, so return empty map
|
||||
if (elements == null || elements.isEmpty())
|
||||
return parameterMap;
|
||||
|
||||
for (Element parameter : elements) {
|
||||
String name = parameter.attributeValue(XmlConstants.XML_ATTR_NAME);
|
||||
String value = parameter.attributeValue(XmlConstants.XML_ATTR_VALUE);
|
|
@ -21,8 +21,8 @@ import org.apache.log4j.PatternLayout;
|
|||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import ch.eitchnet.privilege.base.PrivilegeContainer;
|
||||
import ch.eitchnet.privilege.handler.PrivilegeHandler;
|
||||
import ch.eitchnet.privilege.helper.InitializationHelper;
|
||||
import ch.eitchnet.privilege.i18n.AccessDeniedException;
|
||||
import ch.eitchnet.privilege.i18n.PrivilegeException;
|
||||
import ch.eitchnet.privilege.model.Certificate;
|
||||
|
@ -38,61 +38,64 @@ public class PrivilegeTest {
|
|||
|
||||
private static final Logger logger = Logger.getLogger(PrivilegeTest.class);
|
||||
|
||||
private static PrivilegeHandler privilegeHandler;
|
||||
|
||||
/**
|
||||
* @throws java.lang.Exception
|
||||
*/
|
||||
@BeforeClass
|
||||
public static void init() throws Exception {
|
||||
|
||||
// set up log4j
|
||||
BasicConfigurator.resetConfiguration();
|
||||
BasicConfigurator.configure(new ConsoleAppender(new PatternLayout("%d %5p [%t] %C{1} %M - %m%n")));
|
||||
Logger.getRootLogger().setLevel(Level.INFO);
|
||||
try {
|
||||
// set up log4j
|
||||
BasicConfigurator.resetConfiguration();
|
||||
BasicConfigurator.configure(new ConsoleAppender(new PatternLayout("%d %5p [%t] %C{1} %M - %m%n")));
|
||||
Logger.getRootLogger().setLevel(Level.INFO);
|
||||
|
||||
// initialize container
|
||||
String pwd = System.getProperty("user.dir");
|
||||
File privilegeContainerXml = new File(pwd + "/config/PrivilegeContainer.xml");
|
||||
PrivilegeContainer privilegeContainer = PrivilegeContainer.getInstance();
|
||||
privilegeContainer.initialize(privilegeContainerXml);
|
||||
// initialize container
|
||||
String pwd = System.getProperty("user.dir");
|
||||
File privilegeContainerXmlFile = new File(pwd + "/config/PrivilegeContainer.xml");
|
||||
privilegeHandler = InitializationHelper.initializeFromXml(privilegeContainerXmlFile);
|
||||
} catch (Exception e) {
|
||||
logger.error(e, e);
|
||||
|
||||
throw new RuntimeException("Initialization failed: " + e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAuthenticationOk() throws Exception {
|
||||
|
||||
Certificate certificate = PrivilegeContainer.getInstance().getModelHandler().authenticate("eitch",
|
||||
"1234567890");
|
||||
Certificate certificate = privilegeHandler.authenticate("eitch", "1234567890");
|
||||
org.junit.Assert.assertTrue("Certificate is null!", certificate != null);
|
||||
}
|
||||
|
||||
@Test(expected = AccessDeniedException.class)
|
||||
public void testFailAuthenticationNOk() throws Exception {
|
||||
|
||||
Certificate certificate = PrivilegeContainer.getInstance().getModelHandler().authenticate("eitch", "123");
|
||||
Certificate certificate = privilegeHandler.authenticate("eitch", "123");
|
||||
org.junit.Assert.assertTrue("Certificate is null!", certificate != null);
|
||||
}
|
||||
|
||||
@Test(expected = PrivilegeException.class)
|
||||
public void testFailAuthenticationPWNull() throws Exception {
|
||||
|
||||
Certificate certificate = PrivilegeContainer.getInstance().getModelHandler().authenticate("eitch", null);
|
||||
Certificate certificate = privilegeHandler.authenticate("eitch", null);
|
||||
org.junit.Assert.assertTrue("Certificate is null!", certificate != null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddUserBobWithPW() throws Exception {
|
||||
|
||||
Certificate certificate = PrivilegeContainer.getInstance().getModelHandler().authenticate("eitch",
|
||||
"1234567890");
|
||||
|
||||
PrivilegeHandler modelHandler = PrivilegeContainer.getInstance().getModelHandler();
|
||||
Certificate certificate = privilegeHandler.authenticate("eitch", "1234567890");
|
||||
|
||||
// let's add a new user bob
|
||||
UserRep userRep = new UserRep("bob", "Bob", "Newman", UserState.NEW, new HashSet<String>(), null);
|
||||
modelHandler.addOrReplaceUser(certificate, userRep, null);
|
||||
privilegeHandler.addOrReplaceUser(certificate, userRep, null);
|
||||
logger.info("Added user bob");
|
||||
|
||||
// set bob's password
|
||||
modelHandler.setUserPassword(certificate, "bob", "12345678901");
|
||||
privilegeHandler.setUserPassword(certificate, "bob", "12345678901");
|
||||
logger.info("Set Bob's password");
|
||||
}
|
||||
|
||||
|
@ -104,17 +107,14 @@ public class PrivilegeTest {
|
|||
@Test(expected = AccessDeniedException.class)
|
||||
public void testFailAuthAsBob() throws Exception {
|
||||
|
||||
PrivilegeContainer.getInstance().getModelHandler().authenticate("bob", "12345678901");
|
||||
privilegeHandler.authenticate("bob", "12345678901");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEnableUserBob() throws Exception {
|
||||
|
||||
Certificate certificate = PrivilegeContainer.getInstance().getModelHandler().authenticate("eitch",
|
||||
"1234567890");
|
||||
|
||||
PrivilegeHandler modelHandler = PrivilegeContainer.getInstance().getModelHandler();
|
||||
modelHandler.setUserState(certificate, "bob", UserState.ENABLED);
|
||||
Certificate certificate = privilegeHandler.authenticate("eitch", "1234567890");
|
||||
privilegeHandler.setUserState(certificate, "bob", UserState.ENABLED);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -125,25 +125,21 @@ public class PrivilegeTest {
|
|||
@Test(expected = PrivilegeException.class)
|
||||
public void testFailAuthUserBob() throws Exception {
|
||||
|
||||
Certificate certificate = PrivilegeContainer.getInstance().getModelHandler().authenticate("bob",
|
||||
"12345678901");
|
||||
Certificate certificate = privilegeHandler.authenticate("bob", "12345678901");
|
||||
org.junit.Assert.assertTrue("Certificate is null!", certificate != null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddUserRoleToBob() throws Exception {
|
||||
|
||||
Certificate certificate = PrivilegeContainer.getInstance().getModelHandler().authenticate("eitch",
|
||||
"1234567890");
|
||||
|
||||
PrivilegeHandler modelHandler = PrivilegeContainer.getInstance().getModelHandler();
|
||||
modelHandler.addRoleToUser(certificate, "bob", "user");
|
||||
Certificate certificate = privilegeHandler.authenticate("eitch", "1234567890");
|
||||
privilegeHandler.addRoleToUser(certificate, "bob", "user");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAuthAsBob() throws Exception {
|
||||
|
||||
PrivilegeContainer.getInstance().getModelHandler().authenticate("bob", "12345678901");
|
||||
privilegeHandler.authenticate("bob", "12345678901");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -154,50 +150,43 @@ public class PrivilegeTest {
|
|||
@Test(expected = AccessDeniedException.class)
|
||||
public void testFailAddUserTedAsBob() throws Exception {
|
||||
|
||||
Certificate certificate = PrivilegeContainer.getInstance().getModelHandler().authenticate("bob",
|
||||
"12345678901");
|
||||
Certificate certificate = privilegeHandler.authenticate("bob", "12345678901");
|
||||
org.junit.Assert.assertTrue("Certificate is null!", certificate != null);
|
||||
|
||||
// let's add a new user bob
|
||||
UserRep userRep = new UserRep("bob", "Bob", "Newman", UserState.NEW, new HashSet<String>(), null);
|
||||
PrivilegeContainer.getInstance().getModelHandler().addOrReplaceUser(certificate, userRep, null);
|
||||
privilegeHandler.addOrReplaceUser(certificate, userRep, null);
|
||||
logger.info("Added user bob");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddAdminRoleToBob() throws Exception {
|
||||
|
||||
Certificate certificate = PrivilegeContainer.getInstance().getModelHandler().authenticate("eitch",
|
||||
"1234567890");
|
||||
|
||||
PrivilegeHandler modelHandler = PrivilegeContainer.getInstance().getModelHandler();
|
||||
modelHandler.addRoleToUser(certificate, "bob", PrivilegeContainer.PRIVILEGE_ADMIN_ROLE);
|
||||
Certificate certificate = privilegeHandler.authenticate("eitch", "1234567890");
|
||||
privilegeHandler.addRoleToUser(certificate, "bob", PrivilegeHandler.PRIVILEGE_ADMIN_ROLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddUserTedAsBob() throws Exception {
|
||||
|
||||
Certificate certificate = PrivilegeContainer.getInstance().getModelHandler().authenticate("bob",
|
||||
"12345678901");
|
||||
Certificate certificate = privilegeHandler.authenticate("bob", "12345678901");
|
||||
org.junit.Assert.assertTrue("Certificate is null!", certificate != null);
|
||||
|
||||
// let's add a new user ted
|
||||
UserRep userRep = new UserRep("ted", "Ted", "Newman", UserState.NEW, new HashSet<String>(), null);
|
||||
PrivilegeContainer.getInstance().getModelHandler().addOrReplaceUser(certificate, userRep, null);
|
||||
privilegeHandler.addOrReplaceUser(certificate, userRep, null);
|
||||
logger.info("Added user bob");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPerformRestrictable() throws Exception {
|
||||
|
||||
Certificate certificate = PrivilegeContainer.getInstance().getModelHandler().authenticate("eitch",
|
||||
"1234567890");
|
||||
Certificate certificate = privilegeHandler.authenticate("eitch", "1234567890");
|
||||
org.junit.Assert.assertTrue("Certificate is null!", certificate != null);
|
||||
|
||||
// see if eitch can perform restrictable
|
||||
Restrictable restrictable = new TestRestrictable();
|
||||
boolean actionAllowed = PrivilegeContainer.getInstance().getModelHandler().actionAllowed(certificate,
|
||||
restrictable);
|
||||
boolean actionAllowed = privilegeHandler.actionAllowed(certificate, restrictable);
|
||||
org.junit.Assert.assertTrue("eitch may not perform restrictable!", actionAllowed);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue