我有独立的应用程序,它连接到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);
一切正常,但服务器不要求用户名和密码。如何添加身份验证?
答案 0 :(得分:0)
这对您有用,因为您可能正在测试localhost。如果您尝试命中任何远程服务器,那么它将失败。 WildFLy远程EJB调用默认情况下需要进行身份验证,AFAIK。
您需要添加以下属性:
env.put("java.naming.security.principal", "user");
env.put("java.naming.security.credentials", "pass");
您还需要为WildFly添加此用户。