#ejb #wildfly
#ejb #wildfly
Вопрос:
У меня есть автономное приложение, которое подключается к серверу Wildfly, чтобы получить EJB прокси. Это проект maven, поскольку у меня есть зависимость:
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-ejb-client-bom</artifactId>
<version>8.0.0.Final</version>
<type>pom</type>
</dependency>
Чтобы получить EJB, который я использую:
final Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
env.put(Context.PROVIDER_URL, "http-remoting://localhost:8080");
env.put("jboss.naming.client.ejb.context", true);
InitialContext remoteContext = new InitialContext(env);
String jndi = "jndi";
RemoteInterface lookup = (RemoteInterface) remoteContext.lookup(jndi);
Все работает нормально, но сервер не запрашивает имя пользователя и пароль. Как добавить аутентификацию?
Ответ №1:
Это работает для вас, потому что вы, вероятно, тестируете на localhost. Если вы попытаетесь подключиться к любому удаленному серверу, то это приведет к сбою. Удаленные вызовы EJB WildFly должны быть аутентифицированы по умолчанию, AFAIK.
Вам нужно добавить эти свойства:
env.put("java.naming.security.principal", "user");
env.put("java.naming.security.credentials", "pass");
Вам также необходимо добавить этого пользователя для WildFly.