String value) { if (!keyObj.isDefault()) { if (keyObj.isRole()) { builder.role(keyObj.getRole()); } else if (keyObj.isGroup()) { builder.group(keyObj.getGroup()); } else { throw new IllegalArgumentException("Key must start either with 'role' or 'group': " + keyObj); String attr = keyObj.getAttributeType(); switch (attr) { String permission = keyObj.getAttributeId(); if (permission.length() == 0) { throw new IllegalArgumentException("Permission is incomplete: " + keyObj);
key.length() - 2) : key; String[] tokens = _key.split("\\."); Key result = new Key(key); result.setType(tokens[_idx++]); if (result.isRole()) { result.setRole(tokens[_idx++]); } else if (result.isGroup()) { result.setGroup(tokens[_idx++]); result.setAttributeType(tokens[_idx++]); result.setAttributeId(attrIdStr.toString()); result.validate(); return result;
public void validate() throws IllegalStateException { if (type == null || (!DEFAULT.equals(type) && !ROLE.equals(type) && !GROUP.equals(type))) { throw new IllegalArgumentException("Key must start with [default|role|group]"); } if (isRole() && (roleGroup == null || roleGroup.length() == 0)) { throw new IllegalArgumentException("Role value is empty"); } if (isGroup() && (roleGroup == null || roleGroup.length() == 0)) { throw new IllegalArgumentException("Group value is empty"); } if (attributeType == null || attributeType.length() == 0) { throw new IllegalArgumentException("Empty attribute type not allowed: " + attributeType); } } }
public String getGroup() { return isGroup() ? roleGroup : null; }
public String getRole() { return isRole() ? roleGroup : null; }
/** * Check if a key object can be read according the given read mode. */ private boolean isReadable(Key keyObj, ReadMode readMode) { if (keyObj.isDefault() && DEFAULT_EXCLUDED.equals(readMode)) { return false; } if (!keyObj.isDefault() && DEFAULT_ONLY.equals(readMode)) { return false; } return true; }
@Test public void testSpecialCharsAllowed() { AuthorizationPolicyMarshaller.Key key = marshaller.parse("role.manager.permission.repository.update.git://repo1"); assertTrue(key.isRole()); assertEquals(key.getRole(), "manager"); assertEquals(key.getAttributeType(), "permission"); assertEquals(key.getAttributeId(), "repository.update.git://repo1"); }
@Test public void testDefaultHomeEntry() { AuthorizationPolicyMarshaller.Key key = marshaller.parse("default.home"); assertTrue(key.isDefault()); assertEquals(key.getAttributeType(), "home"); }
@Test public void testGroupEntry() { AuthorizationPolicyMarshaller.Key key = marshaller.parse("group.IT.home"); assertFalse(key.isRole()); assertTrue(key.isGroup()); assertEquals(key.getGroup(), "IT"); assertEquals(key.getAttributeType(), "home"); assertNull(key.getAttributeId()); }
@Test public void testPermissionEntry() { AuthorizationPolicyMarshaller.Key key = marshaller.parse("role.admin.permission.perspective.read"); assertTrue(key.isRole()); assertEquals(key.getRole(), "admin"); assertEquals(key.getAttributeType(), "permission"); assertEquals(key.getAttributeId(), "perspective.read"); }
@Test public void testDefaultPermissionEntry() { AuthorizationPolicyMarshaller.Key key = marshaller.parse("default.permission.perspective.read"); assertTrue(key.isDefault()); assertEquals(key.getAttributeType(), "permission"); assertEquals(key.getAttributeId(), "perspective.read"); }
@Test public void testPermissionEntry() { AuthorizationPolicyMarshaller.Key key = marshaller.parse("role.admin.permission.perspective.read"); assertTrue(key.isRole()); assertEquals(key.getRole(), "admin"); assertEquals(key.getAttributeType(), "permission"); assertEquals(key.getAttributeId(), "perspective.read"); }
@Test public void testHomeEntry() { AuthorizationPolicyMarshaller.Key key = marshaller.parse("role.admin.home"); assertTrue(key.isRole()); assertEquals(key.getRole(), "admin"); assertEquals(key.getAttributeType(), "home"); assertNull(key.getAttributeId()); }
@Test public void testSpecialCharsAllowed() { AuthorizationPolicyMarshaller.Key key = marshaller.parse("role.manager.permission.repository.update.git://repo1"); assertTrue(key.isRole()); assertEquals(key.getRole(), "manager"); assertEquals(key.getAttributeType(), "permission"); assertEquals(key.getAttributeId(), "repository.update.git://repo1"); }
@Test public void testDefaultPermissionEntry() { AuthorizationPolicyMarshaller.Key key = marshaller.parse("default.permission.perspective.read"); assertTrue(key.isDefault()); assertEquals(key.getAttributeType(), "permission"); assertEquals(key.getAttributeId(), "perspective.read"); }
@Test public void testGroupEntry() { AuthorizationPolicyMarshaller.Key key = marshaller.parse("group.IT.home"); assertFalse(key.isRole()); assertTrue(key.isGroup()); assertEquals(key.getGroup(), "IT"); assertEquals(key.getAttributeType(), "home"); assertNull(key.getAttributeId()); }
@Test public void testPriorityEntry() { AuthorizationPolicyMarshaller.Key key = marshaller.parse("role.admin.priority"); assertTrue(key.isRole()); assertEquals(key.getRole(), "admin"); assertEquals(key.getAttributeType(), "priority"); assertNull(key.getAttributeId()); }
@Test public void testHomeEntry() { AuthorizationPolicyMarshaller.Key key = marshaller.parse("role.admin.home"); assertTrue(key.isRole()); assertEquals(key.getRole(), "admin"); assertEquals(key.getAttributeType(), "home"); assertNull(key.getAttributeId()); }
@Test public void testPriorityEntry() { AuthorizationPolicyMarshaller.Key key = marshaller.parse("role.admin.priority"); assertTrue(key.isRole()); assertEquals(key.getRole(), "admin"); assertEquals(key.getAttributeType(), "priority"); assertNull(key.getAttributeId()); }
@Test public void testDefaultHomeEntry() { AuthorizationPolicyMarshaller.Key key = marshaller.parse("default.home"); assertTrue(key.isDefault()); assertEquals(key.getAttributeType(), "home"); }