当前位置: 首页 > 知识库问答 >
问题:

带身份验证的WMQ JNDI查找

熊锐进
2023-03-14
 public class JMSSamplePut 
    {
      private static String initialContextUrl = null;
      private static String connectionFactoryFromJndi = "UM_QMGR_QCF";
      private static String queueFromJndi = "BCUFXW.EXB.ATHENA.FX.IN";
      private static String outString = "A sample text message " +
                                    "from JMSSampleput";
      private static int retryInterval = 10;
      private static int retryCount = 3;
      private static int connStatus = 1;


      /**
       * @param args
       */
      public static void main( String[] args ) 
      {

        // Variables
        Queue                   ioQueue      = null;
        QueueSession            session      = null;
        QueueSender             queueSender  = null;
        QueueConnection         connection   = null;
        QueueConnectionFactory  factory      = null;
        boolean                 transacted   = false;
        int i = 0;

        try { 
          // Instantiate the initial context for JNDI
          String contextFactory ="com.sun.jndi.fscontext.RefFSContextFactory";
          Hashtable environment = new Hashtable();
          environment.put(Context.INITIAL_CONTEXT_FACTORY, contextFactory);
          environment.put(Context.PROVIDER_URL, "file:/c:/jndi"); 
          Context context = new InitialDirContext(environment);
          System.out.println("Initial context found!");

          // Create a Queue ConnectionFactory
          factory = (QueueConnectionFactory) context.lookup(connectionFactoryFromJndi);

    ...........

最后一行失败了

捕获的JMSException:com.ibm.msg.client.jms.detailedJMSSecurityException:JMSWMQ2013:为连接模式为“Client”、主机名为“Natmib1.hostname.net(1414)”的QueueManager“提供的安全身份验证无效。请检查您正在连接到链接异常:com.ibm.MQ.mqexception:jmscmq0001:WebSphere MQ call failed with compcode'2'('mqcc_failed')原因'2035'('mqrc_not_authorized')的QueueManager上提供的用户名和密码是否正确。已完成

JVM args

-Djavax.net.ssl.keystore=c://keystore//a_dev.jks \
-Djavax.net.ssl.keyStorePassword=******** \
-Djavax.net.ssl.trustStorePassword=******** \
-Djavax.net.ssl.trustStore=c://keystore//cacerts.jks \
-Djavax.net.debug=all   
UM_QMGR_QCF/RefAddr/3/Content=NATMIB1.xyz.net

提前致谢

桑达尔

共有1个答案

谭灿
2023-03-14

如果有合适的工具,调试WMQ安全错误非常简单。首先,按照说明获取SupportPac MS0P并安装到WMQ Explorer中。如果您没有现代版本的WMQ Explorer,可以从SupportPac MS0T下载它。

接下来,在QMgr上启用授权事件并重新创建错误。

此时,右键单击WMQ Explorer中的事件队列并选择Format event Messages。这将向您展示错误的各个方面,包括:

    null
 类似资料:
  • 我想在Docker上设置一个配置了身份验证的Cassandra容器。目前我使用的是官方的Cassandra Docker图像,但它似乎没有提供启用认证模式的选项(通过ENV thingies)。 一种可能性是设置一个自己的存储库,从Cassandra Docker GitHub克隆并修改此文件,以便它也接受与身份验证相关的选项,但对于我非常简单的任务来说,这似乎有点复杂。有没有人知道一个更简单的解

  • 身份验证 PDF版下载 企业应用中的URL链接可以通过OAuth2.0验证接口来获取员工的身份信息。 通过此接口获取员工身份会有一定的时间开销。对于频繁获取员工身份的场景,建议采用如下方案: 企业应用中的URL链接直接填写企业自己的页面地址; 员工跳转到企业页面时,企业校验是否有代表员工身份的cookie,此cookie由企业生成; 如果没有获取到cookie,重定向到OAuth验证链接,获取员工

  • 问题内容: 我正在努力为使用网关的REST API设计SAML2.0身份验证。在我的后端和应用程序之间使用REST。我正在使用Java Servlet过滤器和Spring。 我看到两种可能性: 每次将SAML令牌添加到标头中。 使用SAML进行一次身份验证,然后使用客户端与网关之间的会话或类似(安全对话)进行身份验证。 情况1: 这是一个很好的解决方案,因为我们仍然是RESTful,但是: SAM

  • 我正在尝试使用Solrj连接到solr。我的solr实例在jetty中运行,并受到基本身份验证的保护。我找到了这些包含相关信息的链接。 有人能给我指个正确的方向吗?谢谢!!

  • 我是NFC Android的新手,我已经被困了好几天,试图将NTAG4 Mifare Ultralight的第7页与身份验证一起获取,我已经有了PWD和PACK来做基于NTAG212文档的PWD_AUTH。 我这样做。。。 我总是收到将PWD_AUTH命令发送到 NFC 后出错。有人可以告诉我我做错了什么吗?我的方法正确吗?请帮忙。 注意:我已经多次阅读NTAG212的文档,搜索了google、s