我有一个使用 jpos 的程序,我想进行过滤,以便我的服务器仅从特定的 IP 或端口响应。
如何知道消息来自哪里?这是我的简单代码
public class ServerListener implements ISORequestListener {
private final static Logger logger = LoggerFactory.getLogger(ServerListener.class);
@Override
public boolean process(ISOSource requester, ISOMsg reqMsg) {
logger.debug("Heder Destinatnion " +reqMsg.getISOHeader().getDestination());
logger.debug("Heder Source " +reqMsg.getISOHeader().getSource());
return false
}
}
仅显示日志
Heder 目的地 = null
Heder 来源 = null
最佳答案
如果您的 ISOSource
实现实际上是一个扩展 BaseChannel
的 channel (大多数 channel 实现都扩展 BaseChannel
),那么您可以强制转换您的 ISOSource
到 BaseChannel
并使用 BaseChannel.getSocket()
获取对底层套接字的引用。
如果您使用QServer
,您可以使用allow
属性配置允许的主机。
当然,您可以使用防火墙。
关于java - 如何知道Jpos中的请求者是谁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31823860/