场景:MQIPT用于MQ客户机和MQ服务器版本8之间。
是否可以验证在MQIPT上与通道连接一起发送的凭证。我检查了文档,除非为它编写某种安全出口,否则似乎无法完成。
只是想了解一下这方面的意见,如果可能的话,它是如何实现的。
谢谢。
答案 0 :(得分:1)
MQIPT com.ibm.mq.ipt.exit.SecurityExit
和com.ibm.mq.ipt.exit.CertificateExit
类不公开客户端通道的用户名和密码信息。以下是IBM关于这两种出口的文档。
The com.ibm.mq.ipt.exit.SecurityExit class,其中包含以下信息:
IBM v9.0知识中心记录了public SecurityExitResponse validate(IPTTrace)
可以使用以下属性:
- 侦听器端口
- 目的地
- 目的地港口
- 超时
- 客户端IP地址
- 客户端端口地址
- 频道名称
- 队列管理员名称
MQIPT收到a时将调用validate方法 连接请求以进行验证。通道名称和队列管理器 如果已存在SSLProxyMode属性,则名称将不可用 启用,因为此功能仅用于隧道SSL / TLS数据和 因此,通常从初始数据流中获得的数据将是 不可读。
The com.ibm.mq.ipt.exit.CertificateExit class,其中包含以下信息:
获得属性的支持方法:
public int getListenerPort()检索路由侦听器端口 - 由ListenerPort定义 属性
public String getDestination()
检索目标地址 - 由Destination定义 属性
public int getDestinationPort()
检索目标侦听器端口地址 - 由...定义 DestinationPort属性
public String getClientIPAddress()
检索发出连接请求的客户端的IP地址
public int getClientPortAddress()
检索进行连接的客户端使用的端口地址 请求
public boolean isSSLClient()
用于确定退出是否被称为SSL / TLS客户端或 SSL / TLS服务器。如果返回true,则退出在客户端 连接,验证从中获得的证书 服务器。如果返回false,则退出位于服务器端 连接,验证客户端发送的证书。这是有效的 对于充当SSL / TLS服务器和SSL / TLS客户端的路由, 解密和重新加密流量。在这种情况下,虽然 有一个退出类,类的一些实例将是 称为客户端,一些称为服务器。您可以使用isSSLClient 确定给定实例的情况。
public int getConnThreadID()
用于检索正在处理的工作线程的ID 连接请求,可用于调试。
public String getChannelName()
检索连接中使用的IBM®MQ通道名称 请求。仅在传入请求未使用时才可用 SSL / TLS和MQIPT充当SSL / TLS客户端。
public String getQMName()
检索连接中使用的IBM MQ队列管理器的名称 请求。仅在客户端请求未使用时才可用 SSL / TLS和MQIPT充当SSL / TLS客户端。
public boolean getTimedout()
出口用于确定超时是否已过期。
公共IPTCertificate getCertificate()
检索需要验证的SSL / TLS证书。
public String getExitData()
检索退出数据,由SSLExitData属性定义。
public String getExitName()
检索退出名称,由SSLExitName属性定义。