/* * Copyright (C) 2014 Intel Corporation * All rights reserved. */ package test.file; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.PropertyNamingStrategy; import org.junit.Test; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import com.intel.dcsg.cpg.crypto.RandomUtil; import com.intel.mtwilson.shiro.file.model.UserPassword; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * * @author jbuhacoff */ public class YamlFileTest { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(YamlFileTest.class); private ObjectMapper getMapper() { YAMLFactory yamlFactory = new YAMLFactory(); yamlFactory.configure(JsonGenerator.Feature.AUTO_CLOSE_TARGET, false); yamlFactory.configure(JsonParser.Feature.AUTO_CLOSE_SOURCE, false); ObjectMapper mapper = new ObjectMapper(yamlFactory); mapper.setPropertyNamingStrategy(new PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy()); return mapper; } /** * Looks like this: * <pre> * --- * - username: "user1" * password_hash: "tyA60ZyvxFyyEpURnYwzxuDkSE9OEyMREApwht0+kPw=" * salt: "14/mxd6epjs=" * iterations: 1 * algorithm: "SHA256" * - username: "user1" * password_hash: "tyA60ZyvxFyyEpURnYwzxuDkSE9OEyMREApwht0+kPw=" * salt: "14/mxd6epjs=" * iterations: 1 * algorithm: "SHA256" * </pre> * * @throws Exception */ @Test public void testYamlWriteObjectList() throws Exception { ArrayList<UserPassword> list = new ArrayList<>(); UserPassword u1 = new UserPassword(); u1.setUsername("user1"); u1.setAlgorithm("SHA256"); u1.setIterations(1); u1.setSalt(RandomUtil.randomByteArray(8)); u1.setPasswordHash(RandomUtil.randomByteArray(32)); list.add(u1); list.add(u1); log.debug("yaml:\n{}", getMapper().writeValueAsString(list)); } /** * Looks like this: * <pre> * --- * - "user1" * - "user2" * </pre> * * @throws Exception */ @Test public void testYamlWriteListString() throws Exception { ArrayList<String> list = new ArrayList<>(); list.add("user1"); list.add("user2"); log.debug("yaml:\n{}", getMapper().writeValueAsString(list)); } /** * Looks like this: * * <pre> * --- * role2: * - "permission1" * - "permission2" * role1: * - "permission1" * - "permission2" * </pre> * * @throws Exception */ @Test public void testYamlWriteMapList() throws Exception { HashMap<String, List<String>> map = new HashMap<>(); ArrayList<String> list1 = new ArrayList<>(); list1.add("permission1"); list1.add("permission2"); map.put("role1", list1); ArrayList<String> list2 = new ArrayList<>(); list2.add("permission1"); list2.add("permission2"); map.put("role2", list2); log.debug("yaml:\n{}", getMapper().writeValueAsString(map)); } }