private static <P> P[] parseMultiPem(final ConfigurationXMLStreamReader reader, final Class<P> pemType, final IntFunction<P[]> ctor) throws ConfigXMLParseException { requireNoAttributes(reader); final Iterator<PemEntry<?>> pemContent = Pem.parsePemContent(CodePointIterator.ofString(reader.getElementText())); if (! reader.hasNext()) throw reader.unexpectedDocumentEnd(); final ArrayList<P> arrayList = new ArrayList<>(); while (pemContent.hasNext()) { final PemEntry<?> pemEntry = pemContent.next(); final P pem = pemEntry.tryCast(pemType); if (pem == null) throw xmlLog.xmlWrongPemType(reader, pemType, pemEntry.getEntry().getClass()); arrayList.add(pem); } if (arrayList.isEmpty()) throw xmlLog.xmlNoPemContent(reader); return arrayList.toArray(ctor.apply(arrayList.size())); }
private static <P> P parsePem(final ConfigurationXMLStreamReader reader, final Class<P> pemType) throws ConfigXMLParseException { requireNoAttributes(reader); final Iterator<PemEntry<?>> pemContent = Pem.parsePemContent(CodePointIterator.ofString(reader.getElementText())); if (! reader.hasNext()) throw reader.unexpectedDocumentEnd(); if (! pemContent.hasNext()) throw xmlLog.xmlNoPemContent(reader); final PemEntry<?> pemEntry = pemContent.next(); final P pem = pemEntry.tryCast(pemType); if (pem == null) throw xmlLog.xmlWrongPemType(reader, pemType, pemEntry.getEntry().getClass()); return pem; }
static <C> ExceptionSupplier<RuleNode<C>, ConfigXMLParseException> parseRulesType(ConfigurationXMLStreamReader reader, final Version xmlVersion, final Map<String, ExceptionSupplier<C, ConfigXMLParseException>> configurations, ExceptionBiFunction<ConfigurationXMLStreamReader, Map<String, ExceptionSupplier<C, ConfigXMLParseException>>, ExceptionUnaryOperator<RuleNode<C>, ConfigXMLParseException>, ConfigXMLParseException> ruleParseFunction) throws ConfigXMLParseException { requireNoAttributes(reader); final List<ExceptionUnaryOperator<RuleNode<C>, ConfigXMLParseException>> rulesList = new ArrayList<>(); while (reader.hasNext()) {
/** * Parse an XML element of type {@code empty-type} from an XML reader. * * @param reader the XML stream reader * @throws ConfigXMLParseException if the resource failed to be parsed */ static void parseEmptyType(ConfigurationXMLStreamReader reader) throws ConfigXMLParseException { requireNoAttributes(reader); if (reader.hasNext()) { final int tag = reader.nextTag(); if (tag == START_ELEMENT) { throw reader.unexpectedElement(); } else if (tag == END_ELEMENT) { return; } else { throw reader.unexpectedContent(); } } throw reader.unexpectedDocumentEnd(); }
private static void parseSslContextsType(final ConfigurationXMLStreamReader reader, final Version xmlVersion, final Map<String, ExceptionSupplier<SecurityFactory<SSLContext>, ConfigXMLParseException>> sslContextsMap, final Map<String, ExceptionSupplier<KeyStore, ConfigXMLParseException>> keyStoresMap, final Map<String, ExceptionSupplier<CredentialStore, ConfigXMLParseException>> credentialStoresMap, final Supplier<Provider[]> providers) throws ConfigXMLParseException { requireNoAttributes(reader); while (reader.hasNext()) { final int tag = reader.nextTag(); if (tag == START_ELEMENT) { checkElementNamespace(reader, xmlVersion); switch (reader.getLocalName()) { case "ssl-context": { parseSslContextType(reader, xmlVersion, sslContextsMap, keyStoresMap, credentialStoresMap, providers); break; } case "default-ssl-context": { final String name = parseNameType(reader); sslContextsMap.put(name, () -> SSLContext::getDefault); break; } default: { throw reader.unexpectedElement(); } } } else if (tag == END_ELEMENT) { return; } else { throw reader.unexpectedContent(); } } throw reader.unexpectedDocumentEnd(); }
private static void parseAuthenticationConfigurationsType(final ConfigurationXMLStreamReader reader, final Version xmlVersion, final Map<String, ExceptionSupplier<AuthenticationConfiguration, ConfigXMLParseException>> authenticationConfigurationsMap, final Map<String, ExceptionSupplier<KeyStore, ConfigXMLParseException>> keyStoresMap, final Map<String, ExceptionSupplier<CredentialStore, ConfigXMLParseException>> credentialStoresMap, final Supplier<Provider[]> providers) throws ConfigXMLParseException { requireNoAttributes(reader); while (reader.hasNext()) { final int tag = reader.nextTag(); if (tag == START_ELEMENT) { checkElementNamespace(reader, xmlVersion); switch (reader.getLocalName()) { case "configuration": { parseAuthenticationConfigurationType(reader, xmlVersion, authenticationConfigurationsMap, keyStoresMap, credentialStoresMap, providers); break; } default: { throw reader.unexpectedElement(); } } } else if (tag == END_ELEMENT) { return; } else { throw reader.unexpectedContent(); } } throw reader.unexpectedDocumentEnd(); }
/** * Parse an XML element of type {@code key-stores-type} from an XML reader. * * @param reader the XML stream reader * @param xmlVersion the version of parsed XML * @param keyStoresMap the map of key stores to use * @throws ConfigXMLParseException if the resource failed to be parsed */ static void parseKeyStoresType(ConfigurationXMLStreamReader reader, final Version xmlVersion, final Map<String, ExceptionSupplier<KeyStore, ConfigXMLParseException>> keyStoresMap, final Map<String, ExceptionSupplier<CredentialStore, ConfigXMLParseException>> credentialStoresMap, final Supplier<Provider[]> providers) throws ConfigXMLParseException { requireNoAttributes(reader); while (reader.hasNext()) { final int tag = reader.nextTag(); if (tag == START_ELEMENT) { checkElementNamespace(reader, xmlVersion); switch (reader.getLocalName()) { case "key-store": { parseKeyStoreType(reader, xmlVersion, keyStoresMap, credentialStoresMap, providers); break; } default: throw reader.unexpectedElement(); } } else if (tag == END_ELEMENT) { return; } else { throw reader.unexpectedContent(); } } throw reader.unexpectedDocumentEnd(); }
private static KeyPair parseKeyPair(final ConfigurationXMLStreamReader reader, final Version xmlVersion) throws ConfigXMLParseException { requireNoAttributes(reader); PrivateKey privateKey = null; PublicKey publicKey = null;
private static X509CertificateChainPrivateCredential parseCertificateType(final ConfigurationXMLStreamReader reader, final Version xmlVersion) throws ConfigXMLParseException { requireNoAttributes(reader); PrivateKey privateKey = null; X509Certificate[] certificates = null;
requireNoAttributes(reader); ExceptionSupplier<RuleNode<AuthenticationConfiguration>, ConfigXMLParseException> authFactory = () -> null; ExceptionSupplier<RuleNode<SecurityFactory<SSLContext>>, ConfigXMLParseException> sslFactory = () -> null;
static Supplier<Provider[]> parseProvidersType(ConfigurationXMLStreamReader reader, final Version xmlVersion) throws ConfigXMLParseException { requireNoAttributes(reader);
private static ExceptionSupplier<CredentialSource, ConfigXMLParseException> parseCredentialsType(final ConfigurationXMLStreamReader reader, final Version xmlVersion, final Map<String, ExceptionSupplier<KeyStore, ConfigXMLParseException>> keyStoresMap, final Map<String, ExceptionSupplier<CredentialStore, ConfigXMLParseException>> credentialStoresMap, Supplier<Provider[]> providers) throws ConfigXMLParseException { ExceptionUnaryOperator<CredentialSource, ConfigXMLParseException> function = parent -> CredentialSource.NONE; requireNoAttributes(reader); while (reader.hasNext()) { final int tag = reader.nextTag();
private static <P> P[] parseMultiPem(final ConfigurationXMLStreamReader reader, final Class<P> pemType, final IntFunction<P[]> ctor) throws ConfigXMLParseException { requireNoAttributes(reader); final Iterator<PemEntry<?>> pemContent = Pem.parsePemContent(CodePointIterator.ofString(reader.getElementText())); if (! reader.hasNext()) throw reader.unexpectedDocumentEnd(); final ArrayList<P> arrayList = new ArrayList<>(); while (pemContent.hasNext()) { final PemEntry<?> pemEntry = pemContent.next(); final P pem = pemEntry.tryCast(pemType); if (pem == null) throw xmlLog.xmlWrongPemType(reader, pemType, pemEntry.getEntry().getClass()); arrayList.add(pem); } if (arrayList.isEmpty()) throw xmlLog.xmlNoPemContent(reader); return arrayList.toArray(ctor.apply(arrayList.size())); }
private static <P> P[] parseMultiPem(final ConfigurationXMLStreamReader reader, final Class<P> pemType, final IntFunction<P[]> ctor) throws ConfigXMLParseException { requireNoAttributes(reader); final Iterator<PemEntry<?>> pemContent = Pem.parsePemContent(CodePointIterator.ofString(reader.getElementText())); if (! reader.hasNext()) throw reader.unexpectedDocumentEnd(); final ArrayList<P> arrayList = new ArrayList<>(); while (pemContent.hasNext()) { final PemEntry<?> pemEntry = pemContent.next(); final P pem = pemEntry.tryCast(pemType); if (pem == null) throw xmlLog.xmlWrongPemType(reader, pemType, pemEntry.getEntry().getClass()); arrayList.add(pem); } if (arrayList.isEmpty()) throw xmlLog.xmlNoPemContent(reader); return arrayList.toArray(ctor.apply(arrayList.size())); }
private static <P> P[] parseMultiPem(final ConfigurationXMLStreamReader reader, final Class<P> pemType, final IntFunction<P[]> ctor) throws ConfigXMLParseException { requireNoAttributes(reader); final Iterator<PemEntry<?>> pemContent = Pem.parsePemContent(CodePointIterator.ofString(reader.getElementText())); if (! reader.hasNext()) throw reader.unexpectedDocumentEnd(); final ArrayList<P> arrayList = new ArrayList<>(); while (pemContent.hasNext()) { final PemEntry<?> pemEntry = pemContent.next(); final P pem = pemEntry.tryCast(pemType); if (pem == null) throw xmlLog.xmlWrongPemType(reader, pemType, pemEntry.getEntry().getClass()); arrayList.add(pem); } if (arrayList.isEmpty()) throw xmlLog.xmlNoPemContent(reader); return arrayList.toArray(ctor.apply(arrayList.size())); }
private static <P> P parsePem(final ConfigurationXMLStreamReader reader, final Class<P> pemType) throws ConfigXMLParseException { requireNoAttributes(reader); final Iterator<PemEntry<?>> pemContent = Pem.parsePemContent(CodePointIterator.ofString(reader.getElementText())); if (! reader.hasNext()) throw reader.unexpectedDocumentEnd(); if (! pemContent.hasNext()) throw xmlLog.xmlNoPemContent(reader); final PemEntry<?> pemEntry = pemContent.next(); final P pem = pemEntry.tryCast(pemType); if (pem == null) throw xmlLog.xmlWrongPemType(reader, pemType, pemEntry.getEntry().getClass()); return pem; }
private static <P> P parsePem(final ConfigurationXMLStreamReader reader, final Class<P> pemType) throws ConfigXMLParseException { requireNoAttributes(reader); final Iterator<PemEntry<?>> pemContent = Pem.parsePemContent(CodePointIterator.ofString(reader.getElementText())); if (! reader.hasNext()) throw reader.unexpectedDocumentEnd(); if (! pemContent.hasNext()) throw xmlLog.xmlNoPemContent(reader); final PemEntry<?> pemEntry = pemContent.next(); final P pem = pemEntry.tryCast(pemType); if (pem == null) throw xmlLog.xmlWrongPemType(reader, pemType, pemEntry.getEntry().getClass()); return pem; }
private static <P> P parsePem(final ConfigurationXMLStreamReader reader, final Class<P> pemType) throws ConfigXMLParseException { requireNoAttributes(reader); final Iterator<PemEntry<?>> pemContent = Pem.parsePemContent(CodePointIterator.ofString(reader.getElementText())); if (! reader.hasNext()) throw reader.unexpectedDocumentEnd(); if (! pemContent.hasNext()) throw xmlLog.xmlNoPemContent(reader); final PemEntry<?> pemEntry = pemContent.next(); final P pem = pemEntry.tryCast(pemType); if (pem == null) throw xmlLog.xmlWrongPemType(reader, pemType, pemEntry.getEntry().getClass()); return pem; }
/** * Parse an XML element of type {@code empty-type} from an XML reader. * * @param reader the XML stream reader * @throws ConfigXMLParseException if the resource failed to be parsed */ static void parseEmptyType(ConfigurationXMLStreamReader reader) throws ConfigXMLParseException { requireNoAttributes(reader); if (reader.hasNext()) { final int tag = reader.nextTag(); if (tag == START_ELEMENT) { throw reader.unexpectedElement(); } else if (tag == END_ELEMENT) { return; } else { throw reader.unexpectedContent(); } } throw reader.unexpectedDocumentEnd(); }
/** * Parse an XML element of type {@code empty-type} from an XML reader. * * @param reader the XML stream reader * @throws ConfigXMLParseException if the resource failed to be parsed */ static void parseEmptyType(ConfigurationXMLStreamReader reader) throws ConfigXMLParseException { requireNoAttributes(reader); if (reader.hasNext()) { final int tag = reader.nextTag(); if (tag == START_ELEMENT) { throw reader.unexpectedElement(); } else if (tag == END_ELEMENT) { return; } else { throw reader.unexpectedContent(); } } throw reader.unexpectedDocumentEnd(); }