JMSWMQ2013错误和WAS QCF忽略了JAAS身份验证以连接到MQ

时间:2018-06-26 20:33:07

标签: jms websphere ibm-mq

在经过数小时的调查发现QCF忽略了给予它的JAAS身份验证,而是使用自己的方法获取WAS user.name并将其传递给MQ时,WAS QCF尝试连接到MQ时出现以下错误以获得连接并失败。.有人知道为什么WAS QCF在这里忽略JAAS身份验证。我看到了一个post,但没有看到具体的答案。

错误:

{{1}}

1 个答案:

答案 0 :(得分:0)

您需要按以下方式将用户凭据传递给QueueConnection:

QueueConnection conn = cf.createQueueConnection(userID, password);
conn.start();

其中cf是QueueConnectionFactory。

try
{
   Hashtable env = new Hashtable();
   env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
   env.put(Context.PROVIDER_URL, "file:/" + "some_path_to_mq_jndi"

   Context ctx = new InitialContext(env);

   cf = (QueueConnectionFactory) ctx.lookup("myQCF");
}
catch (NamingException e)
{
   System.err.println(e.getLocalizedMessage());
   e.printStackTrace();
   throw e;
}