You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2017/03/21 14:13:11 UTC
svn commit: r1787973 - in /tomcat/trunk:
java/org/apache/coyote/AbstractProtocol.java
java/org/apache/tomcat/util/net/SSLHostConfig.java webapps/docs/changelog.xml
Author: markt
Date: Tue Mar 21 14:13:11 2017
New Revision: 1787973
URL: http://svn.apache.org/viewvc?rev=1787973&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=60853
Expose the SSLHostConfig and SSLHostConfigCertificate objects via JMX.
Modified:
tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
tomcat/trunk/java/org/apache/tomcat/util/net/SSLHostConfig.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1787973&r1=1787972&r2=1787973&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Tue Mar 21 14:13:11 2017
@@ -19,6 +19,7 @@ package org.apache.coyote;
import java.net.InetAddress;
import java.nio.ByteBuffer;
import java.util.Collections;
+import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@@ -42,6 +43,8 @@ import org.apache.tomcat.util.collection
import org.apache.tomcat.util.modeler.Registry;
import org.apache.tomcat.util.net.AbstractEndpoint;
import org.apache.tomcat.util.net.AbstractEndpoint.Handler;
+import org.apache.tomcat.util.net.SSLHostConfig;
+import org.apache.tomcat.util.net.SSLHostConfigCertificate;
import org.apache.tomcat.util.net.SocketEvent;
import org.apache.tomcat.util.net.SocketWrapperBase;
import org.apache.tomcat.util.res.StringManager;
@@ -74,6 +77,10 @@ public abstract class AbstractProtocol<S
protected ObjectName tpOname = null;
+ private Set<ObjectName> sslOnames = new HashSet<>();
+ private Set<ObjectName> sslCertOnames = new HashSet<>();
+
+
/**
* Unique ID for this connector. Only used if the connector is configured
* to use a random port as the port will change if stop(), start() is
@@ -533,7 +540,7 @@ public abstract class AbstractProtocol<S
if (this.domain != null) {
try {
- tpOname = new ObjectName(domain + ":" + "type=ThreadPool,name=" + getName());
+ tpOname = new ObjectName(domain + ":type=ThreadPool,name=" + getName());
Registry.getRegistry(null, null).registerComponent(endpoint, tpOname, null);
} catch (Exception e) {
getLog().error(sm.getString( "abstractProtocolHandler.mbeanRegistrationFailed",
@@ -542,6 +549,22 @@ public abstract class AbstractProtocol<S
rgOname = new ObjectName(domain + ":type=GlobalRequestProcessor,name=" + getName());
Registry.getRegistry(null, null).registerComponent(
getHandler().getGlobal(), rgOname, null);
+
+ for (SSLHostConfig sslHostConfig : getEndpoint().findSslHostConfigs()) {
+ ObjectName sslOname = new ObjectName(domain + ":type=SSLHostConfig,ThreadPool=" +
+ getName() + ",name=" + sslHostConfig.getHostName());
+ Registry.getRegistry(null, null).registerComponent(sslHostConfig, sslOname, null);
+ sslOnames.add(sslOname);
+ for (SSLHostConfigCertificate sslHostConfigCert : sslHostConfig.getCertificates()) {
+ ObjectName sslCertOname = new ObjectName(domain +
+ ":type=SSLHostConfigCertificate,ThreadPool=" + getName() +
+ ",Host=" + sslHostConfig.getHostName() +
+ ",name=" + sslHostConfigCert.getType());
+ Registry.getRegistry(null, null).registerComponent(
+ sslHostConfigCert, sslCertOname, null);
+ sslCertOnames.add(sslCertOname);
+ }
+ }
}
String endpointName = getName();
@@ -640,6 +663,12 @@ public abstract class AbstractProtocol<S
if (rgOname != null) {
Registry.getRegistry(null, null).unregisterComponent(rgOname);
}
+ for (ObjectName oname : sslOnames) {
+ Registry.getRegistry(null, null).unregisterComponent(oname);
+ }
+ for (ObjectName oname : sslCertOnames) {
+ Registry.getRegistry(null, null).unregisterComponent(oname);
+ }
}
}
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SSLHostConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SSLHostConfig.java?rev=1787973&r1=1787972&r2=1787973&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/SSLHostConfig.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/SSLHostConfig.java Tue Mar 21 14:13:11 2017
@@ -128,6 +128,10 @@ public class SSLHostConfig implements Se
}
+ // Expose in String form for JMX
+ public String getConfigType() {
+ return configType.name();
+ }
public void setConfigType(Type configType) {
this.configType = configType;
if (configType == Type.EITHER) {
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1787973&r1=1787972&r2=1787973&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Tue Mar 21 14:13:11 2017
@@ -65,6 +65,10 @@
(markt)
</fix>
<fix>
+ <bug>60853</bug>: Expose the <code>SSLHostConfig</code> and
+ <code>SSLHostConfigCertificate</code> objects via JMX. (markt)
+ </fix>
+ <fix>
<bug>60876</bug>: Ensure that <code>Set-Cookie</code> headers generated
by the <code>Rfc6265CookieProcessor</code> are aligned with the
specification. Patch provided by Jim Griswold. (markt)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org