You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by mi...@apache.org on 2017/05/22 20:18:33 UTC
[1/3] logging-log4j2 git commit: Fix formatting
Repository: logging-log4j2
Updated Branches:
refs/heads/LOG4J2-1442 93ac8ab82 -> 8c10f7818
Fix formatting
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/b12c25c5
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/b12c25c5
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/b12c25c5
Branch: refs/heads/LOG4J2-1442
Commit: b12c25c5e13dc1cbb4e8087b855b509616a7e6f7
Parents: 93ac8ab
Author: Mikael Ståldal <mi...@staldal.nu>
Authored: Mon May 22 20:55:25 2017 +0200
Committer: Mikael Ståldal <mi...@staldal.nu>
Committed: Mon May 22 20:55:25 2017 +0200
----------------------------------------------------------------------
.../logging/log4j/core/appender/HttpAppenderTest.java | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b12c25c5/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/HttpAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/HttpAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/HttpAppenderTest.java
index 9ce31e0..3f55adc 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/HttpAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/HttpAppenderTest.java
@@ -66,7 +66,7 @@ public class HttpAppenderTest {
.withName("Http")
.withLayout(JsonLayout.createDefaultLayout())
.setConfiguration(ctx.getConfiguration())
- .setUrl("http://localhost:"+wireMockRule.port()+"/test/log4j/")
+ .setUrl("http://localhost:" + wireMockRule.port() + "/test/log4j/")
.build();
appender.append(createLogEvent());
@@ -85,7 +85,7 @@ public class HttpAppenderTest {
.withName("Http")
.withLayout(JsonLayout.createDefaultLayout())
.setConfiguration(ctx.getConfiguration())
- .setUrl("https://localhost:"+wireMockRule.httpsPort()+"/test/log4j/")
+ .setUrl("https://localhost:" + wireMockRule.httpsPort() + "/test/log4j/")
.setSslConfiguration(SslConfiguration.createSSLConfiguration("TLS",
KeyStoreConfiguration.createKeyStoreConfiguration(TestConstants.KEYSTORE_FILE, TestConstants.KEYSTORE_PWD, TestConstants.KEYSTORE_TYPE, null),
null))
@@ -108,7 +108,7 @@ public class HttpAppenderTest {
.withLayout(JsonLayout.createDefaultLayout())
.setConfiguration(ctx.getConfiguration())
.setMethod("PUT")
- .setUrl("http://localhost:"+wireMockRule.port()+"/test/log4j/1234")
+ .setUrl("http://localhost:" + wireMockRule.port() + "/test/log4j/1234")
.build();
appender.append(createLogEvent());
@@ -127,7 +127,7 @@ public class HttpAppenderTest {
.withName("Http")
.withLayout(JsonLayout.createDefaultLayout())
.setConfiguration(ctx.getConfiguration())
- .setUrl("http://localhost:"+wireMockRule.port()+"/test/log4j/")
+ .setUrl("http://localhost:" + wireMockRule.port() + "/test/log4j/")
.setHeaders(new Property[] {
Property.createProperty("X-Test", "header value"),
Property.createProperty("X-Runtime", "${java:runtime}")
@@ -171,7 +171,7 @@ public class HttpAppenderTest {
.withName("Http")
.withLayout(JsonLayout.createDefaultLayout())
.setConfiguration(ctx.getConfiguration())
- .setUrl("http://localhost:"+wireMockRule.port()+"/test/log4j/")
+ .setUrl("http://localhost:" + wireMockRule.port() + "/test/log4j/")
.build();
appender.append(createLogEvent());
@@ -195,7 +195,7 @@ public class HttpAppenderTest {
.withLayout(JsonLayout.createDefaultLayout())
.setConfiguration(ctx.getConfiguration())
.withIgnoreExceptions(false)
- .setUrl("http://localhost:"+wireMockRule.port()+"/test/log4j/")
+ .setUrl("http://localhost:" + wireMockRule.port() + "/test/log4j/")
.build();
appender.append(createLogEvent());
}
[3/3] logging-log4j2 git commit: LOG4J2-1442 verifyHostname
Posted by mi...@apache.org.
LOG4J2-1442 verifyHostname
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/8c10f781
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/8c10f781
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/8c10f781
Branch: refs/heads/LOG4J2-1442
Commit: 8c10f7818407c4962675adfdb8ee098ae4aa7ad3
Parents: 9b26bbe
Author: Mikael Ståldal <mi...@staldal.nu>
Authored: Mon May 22 22:18:11 2017 +0200
Committer: Mikael Ståldal <mi...@staldal.nu>
Committed: Mon May 22 22:18:11 2017 +0200
----------------------------------------------------------------------
.../log4j/core/appender/HttpAppender.java | 14 +++++++-
.../core/appender/HttpURLConnectionManager.java | 12 ++++++-
.../log4j/core/net/ssl/LaxHostnameVerifier.java | 38 ++++++++++++++++++++
.../log4j/core/appender/HttpAppenderTest.java | 6 ++--
src/site/xdoc/manual/appenders.xml | 6 ++++
5 files changed, 72 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8c10f781/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpAppender.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpAppender.java
index efc9942..40c387f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpAppender.java
@@ -66,10 +66,13 @@ public final class HttpAppender extends AbstractAppender {
@PluginElement("SslConfiguration")
private SslConfiguration sslConfiguration;
+ @PluginBuilderAttribute
+ private boolean verifyHostname = true;
+
@Override
public HttpAppender build() {
final HttpManager httpManager = new HttpURLConnectionManager(getConfiguration(), getConfiguration().getLoggerContext(),
- getName(), url, method, connectTimeoutMillis, readTimeoutMillis, headers, sslConfiguration);
+ getName(), url, method, connectTimeoutMillis, readTimeoutMillis, headers, sslConfiguration, verifyHostname);
return new HttpAppender(getName(), getLayout(), getFilter(), isIgnoreExceptions(), httpManager);
}
@@ -97,6 +100,10 @@ public final class HttpAppender extends AbstractAppender {
return sslConfiguration;
}
+ public boolean isVerifyHostname() {
+ return verifyHostname;
+ }
+
public B setUrl(final String url) {
this.url = url;
return asBuilder();
@@ -126,6 +133,11 @@ public final class HttpAppender extends AbstractAppender {
this.sslConfiguration = sslConfiguration;
return asBuilder();
}
+
+ public B setVerifyHostname(boolean verifyHostname) {
+ this.verifyHostname = verifyHostname;
+ return asBuilder();
+ }
}
/**
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8c10f781/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpURLConnectionManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpURLConnectionManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpURLConnectionManager.java
index de9225c..a47684e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpURLConnectionManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpURLConnectionManager.java
@@ -34,6 +34,7 @@ import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.config.ConfigurationException;
import org.apache.logging.log4j.core.config.Property;
+import org.apache.logging.log4j.core.net.ssl.LaxHostnameVerifier;
import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
import org.apache.logging.log4j.core.util.IOUtils;
@@ -47,13 +48,16 @@ public class HttpURLConnectionManager extends HttpManager {
private final int readTimeoutMillis;
private final Property[] headers;
private final SslConfiguration sslConfiguration;
+ private final boolean verifyHostname;
public HttpURLConnectionManager(final Configuration configuration, LoggerContext loggerContext, final String name,
final String url, final String method, final int connectTimeoutMillis,
final int readTimeoutMillis,
final Property[] headers,
- SslConfiguration sslConfiguration) {
+ SslConfiguration sslConfiguration,
+ boolean verifyHostname) {
super(configuration, loggerContext, name);
+ this.verifyHostname = verifyHostname;
try {
this.url = new URL(url);
} catch (MalformedURLException e) {
@@ -67,6 +71,9 @@ public class HttpURLConnectionManager extends HttpManager {
if (this.sslConfiguration != null && !this.url.getProtocol().equalsIgnoreCase("https")) {
throw new ConfigurationException("SSL configuration can only be specified with URL scheme https");
}
+ if (!this.verifyHostname && !this.url.getProtocol().equalsIgnoreCase("https")) {
+ throw new ConfigurationException("verifyHostname=false can only be specified with URL scheme https");
+ }
}
@Override
@@ -87,6 +94,9 @@ public class HttpURLConnectionManager extends HttpManager {
if (sslConfiguration != null) {
((HttpsURLConnection)urlConnection).setSSLSocketFactory(sslConfiguration.getSslSocketFactory());
}
+ if (!verifyHostname) {
+ ((HttpsURLConnection)urlConnection).setHostnameVerifier(LaxHostnameVerifier.INSTANCE);
+ }
byte[] msg = layout.toByteArray(event);
urlConnection.setFixedLengthStreamingMode(msg.length);
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8c10f781/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/LaxHostnameVerifier.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/LaxHostnameVerifier.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/LaxHostnameVerifier.java
new file mode 100644
index 0000000..2431cde
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/LaxHostnameVerifier.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+package org.apache.logging.log4j.core.net.ssl;
+
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.SSLSession;
+
+/**
+ * An HostnameVerifier which accepts everything.
+ */
+public final class LaxHostnameVerifier implements HostnameVerifier {
+ /**
+ * Singleton instance.
+ */
+ public static final HostnameVerifier INSTANCE = new LaxHostnameVerifier();
+
+ private LaxHostnameVerifier() {
+ }
+
+ @Override
+ public boolean verify(String s, SSLSession sslSession) {
+ return true;
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8c10f781/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/HttpAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/HttpAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/HttpAppenderTest.java
index 3f55adc..419d340 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/HttpAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/HttpAppenderTest.java
@@ -13,6 +13,7 @@ import org.apache.logging.log4j.core.lookup.JavaLookup;
import org.apache.logging.log4j.core.net.ssl.KeyStoreConfiguration;
import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
import org.apache.logging.log4j.core.net.ssl.TestConstants;
+import org.apache.logging.log4j.core.net.ssl.TrustStoreConfiguration;
import org.apache.logging.log4j.junit.LoggerContextRule;
import org.apache.logging.log4j.message.SimpleMessage;
import org.apache.logging.log4j.status.StatusData;
@@ -86,9 +87,10 @@ public class HttpAppenderTest {
.withLayout(JsonLayout.createDefaultLayout())
.setConfiguration(ctx.getConfiguration())
.setUrl("https://localhost:" + wireMockRule.httpsPort() + "/test/log4j/")
- .setSslConfiguration(SslConfiguration.createSSLConfiguration("TLS",
+ .setSslConfiguration(SslConfiguration.createSSLConfiguration(null,
KeyStoreConfiguration.createKeyStoreConfiguration(TestConstants.KEYSTORE_FILE, TestConstants.KEYSTORE_PWD, TestConstants.KEYSTORE_TYPE, null),
- null))
+ TrustStoreConfiguration.createKeyStoreConfiguration(TestConstants.TRUSTSTORE_FILE, TestConstants.TRUSTSTORE_PWD, TestConstants.TRUSTSTORE_TYPE, null)))
+ .setVerifyHostname(false)
.build();
appender.append(createLogEvent());
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8c10f781/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/appenders.xml b/src/site/xdoc/manual/appenders.xml
index f26dd35..60a3e96 100644
--- a/src/site/xdoc/manual/appenders.xml
+++ b/src/site/xdoc/manual/appenders.xml
@@ -1584,6 +1584,12 @@ public class JpaLogEntity extends AbstractLogEventWrapperEntity {
Optional, uses Java runtime defaults if not specified.</td>
</tr>
<tr>
+ <td>verifyHostname</td>
+ <td>boolean</td>
+ <td>Whether to verify server hostname against certificate. Only valid for https.
+ Optional, defaults to true</td>
+ </tr>
+ <tr>
<td>url</td>
<td>string</td>
<td>The URL to use. The URL scheme must be "http" or "https".</td>
[2/3] logging-log4j2 git commit: LOG4J2-1442 Documentation
Posted by mi...@apache.org.
LOG4J2-1442 Documentation
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/9b26bbe5
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/9b26bbe5
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/9b26bbe5
Branch: refs/heads/LOG4J2-1442
Commit: 9b26bbe57655c045f819142527056d578c9633e4
Parents: b12c25c
Author: Mikael Ståldal <mi...@staldal.nu>
Authored: Mon May 22 21:12:45 2017 +0200
Committer: Mikael Ståldal <mi...@staldal.nu>
Committed: Mon May 22 21:12:45 2017 +0200
----------------------------------------------------------------------
src/site/xdoc/manual/appenders.xml | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9b26bbe5/src/site/xdoc/manual/appenders.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/manual/appenders.xml b/src/site/xdoc/manual/appenders.xml
index add1e52..f26dd35 100644
--- a/src/site/xdoc/manual/appenders.xml
+++ b/src/site/xdoc/manual/appenders.xml
@@ -1547,6 +1547,13 @@ public class JpaLogEntity extends AbstractLogEventWrapperEntity {
Will set the <code>Content-Type</code> header according to the layout. Additional headers can be specified
with embedded Property elements.
</p>
+ <p>
+ Will wait for response from server, and throw error if no 2xx response is received.
+ </p>
+ <p>
+ Implemented with
+ <a href="https://docs.oracle.com/javase/7/docs/api/java/net/HttpURLConnection.html">HttpURLConnection</a>.
+ </p>
<table>
<caption align="top">HttpAppender Parameters</caption>
<tr>
@@ -1571,6 +1578,12 @@ public class JpaLogEntity extends AbstractLogEventWrapperEntity {
<td>The Layout to use to format the LogEvent.</td>
</tr>
<tr>
+ <td>Ssl</td>
+ <td>SslConfiguration</td>
+ <td>Contains the configuration for the KeyStore and TrustStore for https.
+ Optional, uses Java runtime defaults if not specified.</td>
+ </tr>
+ <tr>
<td>url</td>
<td>string</td>
<td>The URL to use. The URL scheme must be "http" or "https".</td>
@@ -1610,9 +1623,13 @@ public class JpaLogEntity extends AbstractLogEventWrapperEntity {
<pre class="prettyprint linenums"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
...
<Appenders>
- <Http name="Http" url="http://localhost:9200/test/log4j/">
+ <Http name="Http" url="https://localhost:9200/test/log4j/">
<Property name="X-Java-Runtime" value="$${java:runtime}" />
<JsonLayout properties="true"/>
+ <Ssl>
+ <KeyStore location="log4j2-keystore.jks" password="changeme"/>
+ <TrustStore location="truststore.jks" password="changeme"/>
+ </Ssl>
</Http>
</Appenders>]]></pre>
</subsection>