Wildfly 16.0.0. Конечные и ejb-клиентские соединения с областью безопасности - PullRequest
2 голосов
/ 12 июня 2019

Руководство разработчика Wildfly объясняет здесь , как настроить InitialContext с использованием специфических свойств Wildfly.

В разделе "Контексты Scoped EJB-клиента" указано , что эти свойства можно также передавать в InitialContext:

Properties jndiPropsL = new Properties();
jndiPropsL.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
jndiPropsL.setProperty("endpoint.name", "client-endpoint");
jndiPropsL.setProperty("org.jboss.ejb.client.scoped.context", "true");
jndiPropsL.setProperty("remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED", "false");
jndiPropsL.setProperty("remote.connections", "default");
jndiPropsL.setProperty("remote.connection.default.host", jbossHost);
jndiPropsL.setProperty("remote.connection.default.port", remotingPort);
jndiPropsL.setProperty("remote.connection.default.protocol", "http-remoting");
jndiPropsL.setProperty("remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS", "false");
jndiPropsL.setProperty("remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT", "false");

В отличие от этого, в руководстве по безопасности Wildfly объясняется, как настроить «защищенное» клиентское соединение EJB:

Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.wildfly.naming.client.WildFlyInitialContextFactory");
properties.put(Context.PROVIDER_URL, "remote+http://127.0.0.1:8080");
InitialContext context = new InitialContext(properties);

Учетные данные передаются через файл wildfly-config.xml.

Что мне нужно настроить, если мне нужны функции из обеих документов, то есть «защищенное» соединение и контекст в контексте? Должен ли я просто предоставить оба набора свойств и при этом задать хост и порт дважды?

1 Ответ

0 голосов
/ 14 июня 2019

Как описано в «Руководстве по безопасности Wildfly Elytron» (см. здесь ), большинство параметров, которые были предоставлены ранее как свойство remote.connection.*, теперь заменены выделенным разделом в пределах wildfly-config.xml.

Только параметры remote.clusters не поддерживаются в новой структуре XML. Следовательно, вы должны предоставить его как свойство InitialContext:

Properties jndiPropsL = new Properties();
jndiPropsL.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.wildfly.naming.client.WildFlyInitialContextFactory");
jndiPropsL.setProperty("remote.clusters", "ejb");

В отличие от более старых версий библиотеки ejb-client, вам нужно только указать эту опцию, если вы действительно используете кластер. Установка этих параметров для установки не-ha приведет к неудачной попытке подключения.

...