private Table<String, String, Set<String>> loadProperties(String path) throws IOException {
        InputStream inputStream = CSPResources.class.getResourceAsStream(path);
        Properties properties = new Properties();
        properties.load(inputStream);

        Table<String, String, Set<String>> resources = HashBasedTable.create();
        for (String propertyName : properties.stringPropertyNames()) {
            String[] substrings = propertyName.split("[.]");
            if (substrings.length != 2) {
                LOG.warn("Skipping malformed property {}: expecting format <group>.<key>", propertyName);
            } else {
                String[] valueArray = properties.getProperty(propertyName).split(" ");
                resources.put(substrings[0], substrings[1], new HashSet<>(Arrays.asList(valueArray)));
            }
        }
        return resources;
    }
@Test
    void loadPropertiesTest() {
        assertThat(cspResources.cspString("default")).isEqualTo(
                "connect-src url1.com:9999 url2.com;default-src 'self';img-src https://url3.com:9999 https://url4.com:9999;script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline'");
        assertThat(cspResources.cspString("swagger")).isEqualTo(
                "connect-src url4.com;img-src https://url5.com:9999;script-src 'self' 'unsafe-eval' 'unsafe-inline';style-src 'self' 'unsafe-inline'");
    }