代码之家  ›  专栏  ›  技术社区  ›  user1133275

如何获取SSLHostConfig?

  •  0
  • user1133275  · 技术社区  · 4 年前

    我可以使用

            MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
            QueryExp qe = Query.match(Query.attr("port"), Query.value("443"));
            ObjectName on = new ObjectName("*:type=Connector,*");
            Set<ObjectName> objectNames = mbs.queryNames(on, qe);
    

    我不想读服务器。xml,以防它不同步。

    0 回复  |  直到 4 年前
        1
  •  2
  •   Piotr P. Karwasz    4 年前

    Connector MBean不包含关于TLS配置的信息。您需要调用该方法 findSslHostConfigs type=ThreadPool . ThreadPool 实际上是用词不当,因为这个MBean是由每个 ProtocolHandler

    final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
    final QueryExp qe = Query.eq(Query.attr("port"), Query.value(443));
    final ObjectName on = new ObjectName("*:type=ThreadPool,*");
    final Set<ObjectName> protocols = mbs.queryNames(on, qe);
    for (final ObjectName protocol : protocols) {
        SSLHostConfig[] configs = (SSLHostConfig[]) mbs.invoke(protocol, "findSslHostConfigs", null, null);
        // do something with the SSLHostConfig
    }
    

    或者 SSLHostConfig type=SSLHostConfig .