/** * Deserialize an AccessControlList object. * @param jsonParser the json parser * @param deserializationContext deserializationcontext * @return * @throws IOException * @throws JsonProcessingException */ @Override public AccessControlList deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { JsonNode node = jsonParser.getCodec().readTree(jsonParser); String owner = node.get(OWNER_FIELD).asText(); String owningGroup = node.get(OWNING_GROUP_FIELD).asText(); List<String> stringEntries = new ArrayList<>(); Iterator<JsonNode> nodeIterator = node.get(STRING_ENTRY_FIELD).elements(); while (nodeIterator.hasNext()) { stringEntries.add(nodeIterator.next().asText()); } return AccessControlList.fromStringEntries(owner, owningGroup, stringEntries); } }
List<String> stringEntries = Arrays.asList("user::rw-", "group::r--", "other::rwx"); AccessControlList acl = AccessControlList.fromStringEntries(userName, groupName, stringEntries); result.setAcl(acl); List<String> defaultStringEntries = Arrays.asList("default:user::rw-", "default:group::r--", "default:other::rwx"); result.setDefaultAcl((DefaultAccessControlList) AccessControlList .fromStringEntries(userName, groupName, defaultStringEntries)); return result;
@Test public void createACLFingeprint() { UfsStatus status = new UfsFileStatus(CommonUtils.randomAlphaNumString(10), CommonUtils.randomAlphaNumString(10), mRandom.nextLong(), mRandom.nextLong(), CommonUtils.randomAlphaNumString(10), CommonUtils.randomAlphaNumString(10), (short) mRandom.nextInt()); AccessControlList acl = AccessControlList.fromStringEntries( CommonUtils.randomAlphaNumString(10), CommonUtils.randomAlphaNumString(10), Arrays.asList("user::rw-", "group::r--", "other::rwx")); Fingerprint fp = Fingerprint.create(CommonUtils.randomAlphaNumString(10), status, acl); String expected = fp.serialize(); Assert.assertNotNull(expected); Assert.assertEquals("user::rw-,group::r--,other::rwx", Fingerprint.parse(expected).getTag(Fingerprint.Tag.ACL)); Assert.assertEquals(expected, Fingerprint.parse(expected).serialize()); } }