Added basic initial implementation for ACL validation

This commit is contained in:
andrea
2015-05-19 22:07:57 +02:00
parent f3ed351c61
commit 8b8058dc47
7 changed files with 100 additions and 6 deletions
@@ -0,0 +1,54 @@
package org.eclipse.moquette.spi.impl.security;
import org.junit.Test;
import static java.util.Arrays.*;
import static org.eclipse.moquette.spi.impl.security.Authorization.Permission.*;
import static org.junit.Assert.*;
public class ACLAuthorizatorTest {
@Test
public void testCanWriteSimpleTopic() {
ACLAuthorizator authorizator = new ACLAuthorizator(asList(new Authorization("/sensors", WRITE)));
//verify
assertTrue(authorizator.canWrite("/sensors"));
}
@Test
public void testCanReadSimpleTopic() {
ACLAuthorizator authorizator = new ACLAuthorizator(asList(new Authorization("/sensors", READ)));
//verify
assertTrue(authorizator.canRead("/sensors"));
}
@Test
public void testCanReadWriteMixedSimpleTopic() {
Authorization topicWriteACL = new Authorization("/sensors", WRITE);
Authorization topicReadACL = new Authorization("/sensors/anemometer", READ);
ACLAuthorizator authorizator = new ACLAuthorizator(asList(topicWriteACL, topicReadACL));
//verify
assertTrue(authorizator.canWrite("/sensors"));
assertFalse(authorizator.canRead("/sensors"));
}
@Test
public void testCanWriteMultiMatherTopic() {
ACLAuthorizator authorizator = new ACLAuthorizator(asList(new Authorization("/sensors/#", WRITE)));
//verify
assertTrue(authorizator.canWrite("/sensors/anemometer/wind"));
}
@Test
public void testCanWriteSingleMatherTopic() {
ACLAuthorizator authorizator = new ACLAuthorizator(asList(new Authorization("/sensors/+", WRITE)));
//verify
assertTrue(authorizator.canWrite("/sensors/anemometer"));
}
}