如何从独立Java应用程序访问安全MQ队列

如何从独立Java应用程序访问安全MQ队列,java,security,ibm-mq,Java,Security,Ibm Mq,我需要从独立java应用程序访问安全MQ队列 有哪些不同的机制可以这样做?我在哪里可以找到实现这一目标的不同方法的细节?欢迎提供任何代码片段或文档链接 多谢各位 更新 谢谢沙石 我对MQ不太熟悉。我是java方面的,所以我请MQ管理员帮我解释。这是他们告诉我的,我们有 We have a “secure” qmgr MGR1. We are attempting to secure all of the objects. We use two (or more) types o

我需要从独立java应用程序访问安全MQ队列

有哪些不同的机制可以这样做?我在哪里可以找到实现这一目标的不同方法的细节?欢迎提供任何代码片段或文档链接

多谢各位

更新

谢谢沙石

我对MQ不太熟悉。我是java方面的,所以我请MQ管理员帮我解释。这是他们告诉我的,我们有

    We have a “secure” qmgr MGR1. We are attempting to secure all of the objects.

    We use two (or more) types of security.

    Object Level security and Channel Authorization records.

    Using Channel Authorization records, we can control who can use a channel 
    from where (userid / IP Address) – block everyone else.

    Object level security, controls who can access a specific object and what 
    they are allowed to do:

    UID1 has connect authority to the qmgr. Read authority on PV.** queues.

这就是你要问的吗?

好的。知道了。这是所有管理员的工作

1) Allow you connect to queue manager
2) Allow you put/get messages to queue(s)
从应用程序的角度来看,不需要任何与安全性相关的内容。应用程序需要编写代码来连接、发送/接收消息。MQ附带了多个示例。您可以在Windows计算机上的Tools/wmqjava/samples文件夹下找到它们。有Java和Java/JMS示例。首先,您可以查看
MQSample.java
sample

编辑

使用
USER\u ID\u属性从应用程序设置userID的示例代码

Hashtable props = new Hashtable();
props.put(CMQC.HOST_NAME_PROPERTY, "mymq.server.com"); 
props.put(CMQC.PORT_PROPERTY, 1414);
props.put(CMQC.CHANNEL_PROPERTY, "SYSTEM.DEF.SVRCONN");
props.put(CMQC.USER_ID_PROPERTY, "myusername";)

MQQueueManager qMgr = new MQQueueManager(qManager, props);

你能描述一下你所说的安全MQ是什么意思吗?@Shashi-谢谢。我更新了问题的细节谢谢。我是否需要在windows机箱上安装MQ客户端?我们的MQ在linux上。该代码是否会存在于linux上,以便管理员允许我访问该目录?此外,我还可以使用非安全队列执行JMS。样本是否有访问安全队列的代码?代码中没有任何特定要求。您需要在windows box上安装MQ客户端。这些示例涵盖包括SSL在内的一系列语言。从您的回答来看,qmgr只有基本的安全性,并且不使用任何SSL或自定义通道出口来挑战用户/密码身份验证。请确保您用于连接qmgr的任何SVRCONN/CLNTCONN通道都有U1D1作为MCAUSER。谢谢。我与MQ管理员一起工作。他们基于IP地址在通道/队列上设置安全性,因为当我使用独立应用程序进行调用时,它没有将我的用户id作为调用java进程的用户发送。是否有任何方法可以从我的应用程序发送Id,这样他们就可以使Id为的安全wotk进行调用,而不是允许来自给定IP地址的任何内容访问该对象?