Java Wildfly 8.2应用程序客户端身份验证“所有可用的身份验证机制均失败”

Java Wildfly 8.2应用程序客户端身份验证“所有可用的身份验证机制均失败”,java,wildfly,Java,Wildfly,我有一个应用程序客户端,它正试图使用远程JNDI http远程处理协议连接到WildFly 8.2服务器。下面是我的InitialContext配置: Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory"); props.put(Context.PROVIDER_URL, "http

我有一个应用程序客户端,它正试图使用远程JNDI http远程处理协议连接到WildFly 8.2服务器。下面是我的InitialContext配置:

Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
props.put(Context.PROVIDER_URL, "http-remoting://localhost:8080");
props.put(Context.SECURITY_PRINCIPAL, userName);
props.put(Context.SECURITY_CREDENTIALS, password);
props.put("jboss.naming.client.ejb.context", true);
context = new InitialContext(props);
WildFly服务器配置为使用标准ApplicationRealm。当我尝试进行身份验证时,我会在客户端控制台中获得以下信息:

ERROR: JBREM000200: Remote connection failed: javax.security.sasl.SaslException: Authentication failed: all available authentication mechanisms failed:

调试完客户端连接代码后,我认为服务器正在将PLAIN作为可接受的SASL机制发送,但我无法让客户端使用PLAIN。

我认为将这些属性添加到您的道具中应该可以解决问题:

    props.put("jboss.naming.client.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS", "false");
props.put("jboss.naming.client.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT", "false");
props.put("jboss.naming.client.ejb.context", "true");