You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by kr...@apache.org on 2018/09/25 00:07:11 UTC
[1/2] knox git commit: KNOX-1441 - Enable spotbugs for static build
checking
Repository: knox
Updated Branches:
refs/heads/master 16e1b6243 -> 5bf7bc5d0
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/src/spotbugs-filter.xml
----------------------------------------------------------------------
diff --git a/src/spotbugs-filter.xml b/src/spotbugs-filter.xml
new file mode 100644
index 0000000..c779bac
--- /dev/null
+++ b/src/spotbugs-filter.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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.
+-->
+<FindBugsFilter
+ xmlns="https://github.com/spotbugs/filter/3.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="https://github.com/spotbugs/filter/3.0.0 https://raw.githubusercontent.com/spotbugs/spotbugs/3.1.0/spotbugs/etc/findbugsfilter.xsd">
+
+ <Match>
+ <Class name="org.apache.knox.gateway.i18n.messages.loggers.sout.SoutMessageLoggerFactory" />
+ <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" />
+ </Match>
+
+ <Match>
+ <Class name="org.apache.knox.gateway.i18n.messages.loggers.test.TestMessageLoggerFactory" />
+ <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" />
+ </Match>
+
+ <Match>
+ <Class name="org.apache.knox.gateway.security.ldap.SimpleLdapDirectoryServer" />
+ <Bug pattern="PATH_TRAVERSAL_IN" />
+ </Match>
+
+ <Match>
+ <Class name="org.apache.knox.gateway.services.security.impl.X509CertificateUtil" />
+ <Method name="writeCertificateToJKS" />
+ <Bug pattern="HARD_CODE_PASSWORD" />
+ </Match>
+
+ <Match>
+ <Class name="org.apache.knox.gateway.GatewayForwardingServlet" />
+ <Bug pattern="REQUESTDISPATCHER_FILE_DISCLOSURE" />
+ </Match>
+
+ <Match>
+ <Class name="org.apache.knox.gateway.provider.federation.jwt.filter.SSOCookieFederationFilter" />
+ <Bug pattern="UNVALIDATED_REDIRECT" />
+ </Match>
+
+ <Match>
+ <Class name="org.apache.knox.gateway.filter.RedirectToUrlFilter" />
+ <Bug pattern="UNVALIDATED_REDIRECT" />
+ </Match>
+
+ <Match>
+ <Class name="org.apache.knox.gateway.service.knoxsso.WebSSOResource" />
+ <Bug pattern="UNVALIDATED_REDIRECT" />
+ </Match>
+
+ <Match>
+ <Class name="~org.apache.hadoop.gateway..*" />
+ <Bug pattern="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS" />
+ </Match>
+
+</FindBugsFilter>
[2/2] knox git commit: KNOX-1441 - Enable spotbugs for static build
checking
Posted by kr...@apache.org.
KNOX-1441 - Enable spotbugs for static build checking
Signed-off-by: Kevin Risden <kr...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/knox/repo
Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/5bf7bc5d
Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/5bf7bc5d
Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/5bf7bc5d
Branch: refs/heads/master
Commit: 5bf7bc5d01d57481a53c04f6db05e26f42a0e9ca
Parents: 16e1b62
Author: Kevin Risden <kr...@apache.org>
Authored: Fri Sep 21 09:25:41 2018 -0400
Committer: Kevin Risden <kr...@apache.org>
Committed: Mon Sep 24 19:26:40 2018 -0400
----------------------------------------------------------------------
.travis.yml | 52 ++++++++
.../ambari/AmbariDynamicServiceURLCreator.java | 4 +-
.../topology/discovery/ambari/RESTInvoker.java | 19 +--
.../ambari/SparkHistoryUIServiceURLCreator.java | 3 +-
.../deploy/HaProviderDeploymentContributor.java | 10 +-
.../DefaultIdentityAssertionFilterTest.java | 34 ++---
.../encrypturi/impl/DecryptUriProcessor.java | 11 +-
.../apache/knox/gateway/GatewayCommandLine.java | 9 +-
.../org/apache/knox/gateway/GatewayServer.java | 16 ++-
.../org/apache/knox/gateway/GatewayServlet.java | 35 ++---
.../impl/ApplicationDeploymentContributor.java | 33 ++---
.../filter/BasicAuthChallengeFilter.java | 3 +-
.../security/impl/RemoteAliasService.java | 7 +-
.../DefaultRemoteConfigurationMonitor.java | 6 +-
.../simple/ProviderConfigurationParser.java | 4 +-
.../simple/SimpleDescriptorHandler.java | 33 +++--
.../apache/knox/gateway/trace/ErrorHandler.java | 42 ------
.../knox/gateway/trace/KnoxErrorHandler.java | 43 ++++++
.../org/apache/knox/gateway/util/KnoxCLI.java | 65 ++++-----
.../gateway/util/ServiceDefinitionsLoader.java | 5 +-
.../gateway/rm/dispatch/RMHaBaseDispatcher.java | 13 +-
.../service/test/ServiceTestResource.java | 43 +++---
.../hdfs/dispatch/AbstractHdfsHaDispatch.java | 20 +--
.../org/apache/knox/gateway/shell/KnoxSh.java | 14 +-
.../knox/gateway/dispatch/DefaultDispatch.java | 24 ++--
.../services/hostmap/FileBasedHostMapper.java | 3 +-
.../security/impl/BaseKeystoreService.java | 3 +-
.../security/impl/CMFMasterService.java | 5 +-
.../main/java/org/apache/knox/test/Console.java | 7 +-
.../java/org/apache/knox/test/TestUtils.java | 27 ++--
.../gateway/audit/log4j/audit/Log4jAuditor.java | 2 +-
.../impl/DefaultConfigurationInjector.java | 8 +-
pom.xml | 133 ++++++++++++-------
src/spotbugs-filter.xml | 69 ++++++++++
34 files changed, 494 insertions(+), 311 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..3c18224
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,52 @@
+# Configuration file for Travis continuous integration.
+# See https://travis-ci.org/apache/knox
+#
+# 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.
+#
+language: java
+matrix:
+ fast_finish: true
+ include:
+ - env: IMAGE=maven:3-jdk-8
+ - env: IMAGE=maven:3-jdk-9
+ - env: IMAGE=maven:3-jdk-10
+ - env: IMAGE=maven:3-jdk-11
+ allow_failures:
+ - env: IMAGE=maven:3-jdk-9
+ - env: IMAGE=maven:3-jdk-10
+ - env: IMAGE=maven:3-jdk-11
+
+env:
+ global:
+ - DOCKERRUN="docker run -it --rm -v $PWD:/src -v $HOME/.m2:/root/.m2 -w /src"
+services:
+ - docker
+before_install:
+ - docker pull $IMAGE
+install:
+ # Print the Maven version, skip tests and javadoc
+ - $DOCKERRUN $IMAGE mvn install -DskipTests=true -Dmaven.javadoc.skip=true -Djavax.net.ssl.trustStorePassword=changeit -B -V
+script:
+ # Print surefire output to the console instead of files
+ - unset _JAVA_OPTIONS
+ - $DOCKERRUN $IMAGE mvn -Dsurefire.useFile=false -Dsurefire.parallel= -Djavax.net.ssl.trustStorePassword=changeit verify
+git:
+ depth: 1000
+sudo: required
+cache:
+ directories:
+ - $HOME/.m2
+# End .travis.yml
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/AmbariDynamicServiceURLCreator.java
----------------------------------------------------------------------
diff --git a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/AmbariDynamicServiceURLCreator.java b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/AmbariDynamicServiceURLCreator.java
index 5f1e8a4..ed53f91 100644
--- a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/AmbariDynamicServiceURLCreator.java
+++ b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/AmbariDynamicServiceURLCreator.java
@@ -23,13 +23,13 @@ import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-
class AmbariDynamicServiceURLCreator implements ServiceURLCreator {
static final String MAPPING_CONFIG_OVERRIDE_FILE = "ambari-discovery-url-mappings.xml";
@@ -56,7 +56,7 @@ class AmbariDynamicServiceURLCreator implements ServiceURLCreator {
AmbariDynamicServiceURLCreator(AmbariCluster cluster, String mappings) {
this.cluster = cluster;
- config = new ServiceURLPropertyConfig(new ByteArrayInputStream(mappings.getBytes()));
+ config = new ServiceURLPropertyConfig(new ByteArrayInputStream(mappings.getBytes(StandardCharsets.UTF_8)));
}
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/RESTInvoker.java
----------------------------------------------------------------------
diff --git a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/RESTInvoker.java b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/RESTInvoker.java
index b51bd1c..4df1c4d 100644
--- a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/RESTInvoker.java
+++ b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/RESTInvoker.java
@@ -18,23 +18,25 @@ package org.apache.knox.gateway.topology.discovery.ambari;
import net.minidev.json.JSONObject;
import net.minidev.json.JSONValue;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpStatus;
import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ConnectTimeoutException;
+import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.message.BasicHeader;
+import org.apache.http.util.EntityUtils;
import org.apache.knox.gateway.config.ConfigurationException;
import org.apache.knox.gateway.config.GatewayConfig;
import org.apache.knox.gateway.i18n.messages.MessagesFactory;
import org.apache.knox.gateway.services.security.AliasService;
import org.apache.knox.gateway.services.security.AliasServiceException;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpStatus;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.message.BasicHeader;
-import org.apache.http.util.EntityUtils;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.Base64;
class RESTInvoker {
@@ -130,8 +132,7 @@ class RESTInvoker {
}
// Add an auth header if credentials are available
- String encodedCreds =
- org.apache.commons.codec.binary.Base64.encodeBase64String((username + ":" + password).getBytes());
+ String encodedCreds = Base64.getEncoder().encodeToString((username + ":" + password).getBytes(StandardCharsets.UTF_8));
request.addHeader(new BasicHeader("Authorization", "Basic " + encodedCreds));
// Ambari CSRF protection
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/SparkHistoryUIServiceURLCreator.java
----------------------------------------------------------------------
diff --git a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/SparkHistoryUIServiceURLCreator.java b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/SparkHistoryUIServiceURLCreator.java
index 09506c9..95c01e8 100644
--- a/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/SparkHistoryUIServiceURLCreator.java
+++ b/gateway-discovery-ambari/src/main/java/org/apache/knox/gateway/topology/discovery/ambari/SparkHistoryUIServiceURLCreator.java
@@ -20,7 +20,6 @@ public class SparkHistoryUIServiceURLCreator extends SparkCommonServiceURLCreato
private static final String RESOURCE_ROLE = "SPARKHISTORYUI";
-
private static final String SSL_FLAG_PRIMARY = "spark.ssl.historyServer.enabled";
private static final String SSL_FLAG_SECONDARY = "spark.ssl.enabled";
@@ -49,7 +48,7 @@ public class SparkHistoryUIServiceURLCreator extends SparkCommonServiceURLCreato
if (isSSL(comp)) {
String sslPort = comp.getConfigProperty(SSL_PORT_PROPERTY);
if (sslPort == null || sslPort.isEmpty()) {
- int p = Integer.valueOf(comp.getConfigProperty(portConfigProperty)) + SSL_PORT_OFFSET;
+ int p = Integer.parseInt(comp.getConfigProperty(portConfigProperty)) + SSL_PORT_OFFSET;
sslPort = String.valueOf(p);
}
port = sslPort;
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/deploy/HaProviderDeploymentContributor.java
----------------------------------------------------------------------
diff --git a/gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/deploy/HaProviderDeploymentContributor.java b/gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/deploy/HaProviderDeploymentContributor.java
index 633179d..875f6c1 100644
--- a/gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/deploy/HaProviderDeploymentContributor.java
+++ b/gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/deploy/HaProviderDeploymentContributor.java
@@ -110,27 +110,27 @@ public class HaProviderDeploymentContributor extends ProviderDeploymentContribut
if (serviceLevelParams != null && !serviceLevelParams.isEmpty()) {
String enabled = serviceLevelParams.get(Service.HA_ENABLED_PARAM);
if (enabled != null) {
- config.setEnabled(Boolean.valueOf(enabled));
+ config.setEnabled(Boolean.parseBoolean(enabled));
}
String failOverSleep = serviceLevelParams.get(HaServiceConfigConstants.CONFIG_PARAM_FAILOVER_SLEEP);
if (failOverSleep != null) {
- config.setFailoverSleep(Integer.valueOf(failOverSleep));
+ config.setFailoverSleep(Integer.parseInt(failOverSleep));
}
String failOverAttempts = serviceLevelParams.get(HaServiceConfigConstants.CONFIG_PARAM_MAX_FAILOVER_ATTEMPTS);
if (failOverAttempts != null) {
- config.setMaxFailoverAttempts(Integer.valueOf(failOverAttempts));
+ config.setMaxFailoverAttempts(Integer.parseInt(failOverAttempts));
}
String retrySleep = serviceLevelParams.get(HaServiceConfigConstants.CONFIG_PARAM_RETRY_SLEEP);
if (retrySleep != null) {
- config.setRetrySleep(Integer.valueOf(retrySleep));
+ config.setRetrySleep(Integer.parseInt(retrySleep));
}
String retryAttempts = serviceLevelParams.get(HaServiceConfigConstants.CONFIG_PARAM_MAX_RETRY_ATTEMPTS);
if (retryAttempts != null) {
- config.setMaxRetryAttempts(Integer.valueOf(retryAttempts));
+ config.setMaxRetryAttempts(Integer.parseInt(retryAttempts));
}
String zkEnsemble = serviceLevelParams.get(HaServiceConfigConstants.CONFIG_PARAM_ZOOKEEPER_ENSEMBLE);
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-provider-identity-assertion-pseudo/src/test/java/org/apache/knox/gateway/identityasserter/filter/DefaultIdentityAssertionFilterTest.java
----------------------------------------------------------------------
diff --git a/gateway-provider-identity-assertion-pseudo/src/test/java/org/apache/knox/gateway/identityasserter/filter/DefaultIdentityAssertionFilterTest.java b/gateway-provider-identity-assertion-pseudo/src/test/java/org/apache/knox/gateway/identityasserter/filter/DefaultIdentityAssertionFilterTest.java
index adfc95d..95a5909 100644
--- a/gateway-provider-identity-assertion-pseudo/src/test/java/org/apache/knox/gateway/identityasserter/filter/DefaultIdentityAssertionFilterTest.java
+++ b/gateway-provider-identity-assertion-pseudo/src/test/java/org/apache/knox/gateway/identityasserter/filter/DefaultIdentityAssertionFilterTest.java
@@ -17,21 +17,21 @@
*/
package org.apache.knox.gateway.identityasserter.filter;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.security.Principal;
+import org.apache.knox.gateway.security.GroupPrincipal;
+import org.apache.knox.gateway.security.PrimaryPrincipal;
+import org.easymock.EasyMock;
+import org.junit.Test;
import javax.security.auth.Subject;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
+import java.security.Principal;
+import java.util.Arrays;
-import org.apache.knox.gateway.security.GroupPrincipal;
-import org.apache.knox.gateway.security.PrimaryPrincipal;
-import org.easymock.EasyMock;
-import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
/**
*
@@ -71,9 +71,9 @@ public class DefaultIdentityAssertionFilterTest {
username = filter.mapUserPrincipal(((Principal) subject.getPrincipals(PrimaryPrincipal.class).toArray()[0]).getName());
String[] mappedGroups = filter.mapGroupPrincipals(((Principal) subject.getPrincipals(PrimaryPrincipal.class).toArray()[0]).getName(), subject);
assertEquals("hdfs", username);
- assertTrue("mrgroup not found in groups: " + mappedGroups, groupFoundIn("mrgroup", mappedGroups));
- assertTrue("mrducks not found in groups: " + mappedGroups, groupFoundIn("mrducks", mappedGroups));
- assertFalse("group1 WAS found in groups: " + mappedGroups, groupFoundIn("group1", mappedGroups));
+ assertTrue("mrgroup not found in groups: " + Arrays.toString(mappedGroups), groupFoundIn("mrgroup", mappedGroups));
+ assertTrue("mrducks not found in groups: " + Arrays.toString(mappedGroups), groupFoundIn("mrducks", mappedGroups));
+ assertFalse("group1 WAS found in groups: " + Arrays.toString(mappedGroups), groupFoundIn("group1", mappedGroups));
subject = new Subject();
@@ -91,7 +91,7 @@ public class DefaultIdentityAssertionFilterTest {
username = filter.mapUserPrincipal(((Principal) subject.getPrincipals(PrimaryPrincipal.class).toArray()[0]).getName());
mappedGroups = filter.mapGroupPrincipals(((Principal) subject.getPrincipals(PrimaryPrincipal.class).toArray()[0]).getName(), subject);
assertEquals("hdfs", username);
- assertTrue("group1 not found in groups: " + mappedGroups, groupFoundIn("group1", mappedGroups));
+ assertTrue("group1 not found in groups: " + Arrays.toString(mappedGroups), groupFoundIn("group1", mappedGroups));
}
/**
@@ -147,9 +147,9 @@ public class DefaultIdentityAssertionFilterTest {
username = filter.mapUserPrincipal(((Principal) subject.getPrincipals(PrimaryPrincipal.class).toArray()[0]).getName());
groups = filter.mapGroupPrincipals(((Principal) subject.getPrincipals(PrimaryPrincipal.class).toArray()[0]).getName(), subject);
assertEquals("hdfs", username);
- assertTrue("mrgroup not found in groups: " + groups, groupFoundIn("mrgroup", groups));
- assertTrue("mrducks not found in groups: " + groups, groupFoundIn("mrducks", groups));
- assertFalse("group1 WAS found in groups: " + groups, groupFoundIn("group1", groups));
+ assertTrue("mrgroup not found in groups: " + Arrays.toString(groups), groupFoundIn("mrgroup", groups));
+ assertTrue("mrducks not found in groups: " + Arrays.toString(groups), groupFoundIn("mrducks", groups));
+ assertFalse("group1 WAS found in groups: " + Arrays.toString(groups), groupFoundIn("group1", groups));
subject = new Subject();
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-provider-rewrite-step-encrypt-uri/src/main/java/org/apache/knox/gateway/encrypturi/impl/DecryptUriProcessor.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite-step-encrypt-uri/src/main/java/org/apache/knox/gateway/encrypturi/impl/DecryptUriProcessor.java b/gateway-provider-rewrite-step-encrypt-uri/src/main/java/org/apache/knox/gateway/encrypturi/impl/DecryptUriProcessor.java
index c1b2e8e..a2df314 100644
--- a/gateway-provider-rewrite-step-encrypt-uri/src/main/java/org/apache/knox/gateway/encrypturi/impl/DecryptUriProcessor.java
+++ b/gateway-provider-rewrite-step-encrypt-uri/src/main/java/org/apache/knox/gateway/encrypturi/impl/DecryptUriProcessor.java
@@ -17,9 +17,6 @@
*/
package org.apache.knox.gateway.encrypturi.impl;
-import java.io.UnsupportedEncodingException;
-import java.util.Arrays;
-
import org.apache.commons.codec.binary.Base64;
import org.apache.knox.gateway.encrypturi.EncryptStepContextParams;
import org.apache.knox.gateway.encrypturi.api.DecryptUriDescriptor;
@@ -35,6 +32,10 @@ import org.apache.knox.gateway.util.urltemplate.Expander;
import org.apache.knox.gateway.util.urltemplate.Parser;
import org.apache.knox.gateway.util.urltemplate.Template;
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
+import java.util.Collections;
+
public class DecryptUriProcessor
implements UrlRewriteStepProcessor<DecryptUriDescriptor> {
@@ -63,7 +64,7 @@ public class DecryptUriProcessor
.expandToString( template, context.getParameters(), context.getEvaluator() );
String url = decode( resolvedTemplate );
EncryptStepContextParams params = new EncryptStepContextParams();
- params.addParam( param, Arrays.asList( url ) );
+ params.addParam( param, Collections.singletonList(url));
context.addParameters( params );
return UrlRewriteStepStatus.SUCCESS;
}
@@ -83,7 +84,7 @@ public class DecryptUriProcessor
result.iv,
result.salt);
if (clear != null) {
- return new String(clear);
+ return new String(clear, StandardCharsets.UTF_8);
}
return null;
}
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-server/src/main/java/org/apache/knox/gateway/GatewayCommandLine.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayCommandLine.java b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayCommandLine.java
index 18aaa5c..a981c4e 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayCommandLine.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayCommandLine.java
@@ -26,9 +26,12 @@ import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.PosixParser;
import org.apache.knox.gateway.i18n.resources.ResourcesFactory;
+import java.io.OutputStreamWriter;
import java.io.PrintWriter;
+import java.nio.charset.StandardCharsets;
-import static org.apache.commons.cli.HelpFormatter.*;
+import static org.apache.commons.cli.HelpFormatter.DEFAULT_DESC_PAD;
+import static org.apache.commons.cli.HelpFormatter.DEFAULT_LEFT_PAD;
public class GatewayCommandLine {
@@ -39,13 +42,13 @@ public class GatewayCommandLine {
}
public static void printUsage() {
- PrintWriter printer = new PrintWriter( System.err );
+ PrintWriter printer = new PrintWriter(new OutputStreamWriter( System.err, StandardCharsets.UTF_8), true);
new HelpFormatter().printUsage( printer, LINE_WIDTH, COMMAND_NAME, createCommandLine() );
printer.flush();
}
public static void printHelp() {
- PrintWriter printer = new PrintWriter( System.err );
+ PrintWriter printer = new PrintWriter(new OutputStreamWriter( System.err, StandardCharsets.UTF_8), true);
new HelpFormatter().printHelp(printer, LINE_WIDTH, COMMAND_NAME, null, createCommandLine(), DEFAULT_LEFT_PAD, DEFAULT_DESC_PAD, null);
printer.flush();
}
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
index fc92f48..bf4929d 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServer.java
@@ -48,7 +48,7 @@ import org.apache.knox.gateway.topology.Topology;
import org.apache.knox.gateway.topology.TopologyEvent;
import org.apache.knox.gateway.topology.TopologyListener;
import org.apache.knox.gateway.trace.AccessHandler;
-import org.apache.knox.gateway.trace.ErrorHandler;
+import org.apache.knox.gateway.trace.KnoxErrorHandler;
import org.apache.knox.gateway.trace.TraceHandler;
import org.apache.knox.gateway.util.Urls;
import org.apache.knox.gateway.util.XmlUtils;
@@ -82,10 +82,11 @@ import org.xml.sax.SAXException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
import java.io.File;
-import java.io.FileWriter;
+import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStreamWriter;
import java.io.Serializable;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
@@ -93,6 +94,7 @@ import java.net.Socket;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.UnknownHostException;
+import java.nio.charset.StandardCharsets;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
@@ -424,7 +426,7 @@ public class GatewayServer {
String[] mimeTypes = {};
if (config.getMimeTypesToCompress() != null
&& !config.getMimeTypesToCompress().isEmpty()) {
- mimeTypes = (String[]) config.getMimeTypesToCompress().toArray();
+ mimeTypes = config.getMimeTypesToCompress().toArray(new String[0]);
}
gzipHandler.addIncludedMimeTypes(mimeTypes);
gzipHandler.setHandler(correlationHandler);
@@ -693,8 +695,8 @@ public class GatewayServer {
return addresses;
}
- private ErrorHandler createErrorHandler() {
- ErrorHandler errorHandler = new ErrorHandler();
+ private KnoxErrorHandler createErrorHandler() {
+ KnoxErrorHandler errorHandler = new KnoxErrorHandler();
errorHandler.setShowStacks( false );
errorHandler.setTracedBodyFilter( System.getProperty( "org.apache.knox.gateway.trace.body.status.filter" ) );
return errorHandler;
@@ -755,8 +757,8 @@ public class GatewayServer {
originalRoot.appendChild( importedNode );
}
}
-
- XmlUtils.writeXml( webXmlDoc, new FileWriter(webXmlFile) );
+
+ XmlUtils.writeXml( webXmlDoc, new OutputStreamWriter(new FileOutputStream(webXmlFile), StandardCharsets.UTF_8) );
}
}
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServlet.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServlet.java b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServlet.java
index 21aa29b..020cafb 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServlet.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/GatewayServlet.java
@@ -17,22 +17,6 @@
*/
package org.apache.knox.gateway;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URISyntaxException;
-import java.util.Enumeration;
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.Servlet;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
-
import org.apache.knox.gateway.audit.api.Action;
import org.apache.knox.gateway.audit.api.ActionOutcome;
import org.apache.knox.gateway.audit.api.AuditService;
@@ -49,6 +33,23 @@ import org.apache.knox.gateway.i18n.resources.ResourcesFactory;
import org.apache.knox.gateway.services.GatewayServices;
import org.apache.knox.gateway.services.metrics.MetricsService;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.Servlet;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URISyntaxException;
+import java.nio.charset.StandardCharsets;
+import java.util.Enumeration;
+
public class GatewayServlet implements Servlet, Filter {
public static final String GATEWAY_DESCRIPTOR_LOCATION_DEFAULT = "gateway.xml";
@@ -214,7 +215,7 @@ public class GatewayServlet implements Servlet, Filter {
GatewayFilter filter = null;
if( stream != null ) {
try {
- GatewayDescriptor descriptor = GatewayDescriptorFactory.load( "xml", new InputStreamReader( stream ) );
+ GatewayDescriptor descriptor = GatewayDescriptorFactory.load("xml", new InputStreamReader(stream, StandardCharsets.UTF_8));
filter = GatewayFactory.create( descriptor );
} finally {
stream.close();
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-server/src/main/java/org/apache/knox/gateway/deploy/impl/ApplicationDeploymentContributor.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/deploy/impl/ApplicationDeploymentContributor.java b/gateway-server/src/main/java/org/apache/knox/gateway/deploy/impl/ApplicationDeploymentContributor.java
index e02c0e5..2a8f872 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/deploy/impl/ApplicationDeploymentContributor.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/deploy/impl/ApplicationDeploymentContributor.java
@@ -17,21 +17,6 @@
*/
package org.apache.knox.gateway.deploy.impl;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.StringReader;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-
import org.apache.knox.gateway.config.GatewayConfig;
import org.apache.knox.gateway.config.impl.GatewayConfigImpl;
import org.apache.knox.gateway.deploy.DeploymentContext;
@@ -52,6 +37,22 @@ import org.apache.knox.gateway.topology.Application;
import org.apache.knox.gateway.topology.Service;
import org.apache.knox.gateway.topology.Version;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.StringReader;
+import java.net.URISyntaxException;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
public class ApplicationDeploymentContributor extends ServiceDeploymentContributorBase {
private static final String SERVICE_DEFINITION_FILE_NAME = "service.xml";
@@ -94,7 +95,7 @@ public class ApplicationDeploymentContributor extends ServiceDeploymentContribut
if( !file.exists() ) {
rules = UrlRewriteRulesDescriptorFactory.load( "xml", new StringReader( "<rules/>" ) );
} else {
- FileReader reader = new FileReader( file );
+ InputStreamReader reader = new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8);
rules = UrlRewriteRulesDescriptorFactory.load( "xml", reader );
reader.close();
}
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-server/src/main/java/org/apache/knox/gateway/filter/BasicAuthChallengeFilter.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/filter/BasicAuthChallengeFilter.java b/gateway-server/src/main/java/org/apache/knox/gateway/filter/BasicAuthChallengeFilter.java
index 589c20f..49088c7 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/filter/BasicAuthChallengeFilter.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/filter/BasicAuthChallengeFilter.java
@@ -26,6 +26,7 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
/**
*
@@ -67,7 +68,7 @@ public class BasicAuthChallengeFilter extends AbstractGatewayFilter {
if( basicAuthResponse != null ) {
String[] parts = basicAuthResponse.split( " " );
if( parts.length == 2 ) {
- String usernamePassword = new String( Base64.decodeBase64( parts[1] ) );
+ String usernamePassword = new String( Base64.decodeBase64( parts[1] ), StandardCharsets.UTF_8);
parts = usernamePassword.split( ":" );
if( parts.length == 2 ) {
String username = parts[0];
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/RemoteAliasService.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/RemoteAliasService.java b/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/RemoteAliasService.java
index f270ad1..4af4991 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/RemoteAliasService.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/services/security/impl/RemoteAliasService.java
@@ -33,6 +33,7 @@ import org.apache.knox.gateway.services.security.EncryptionResult;
import org.apache.knox.gateway.services.security.MasterService;
import org.apache.zookeeper.ZooDefs;
+import java.nio.charset.StandardCharsets;
import java.security.cert.Certificate;
import java.util.ArrayList;
import java.util.Collections;
@@ -566,12 +567,12 @@ public class RemoteAliasService implements AliasService {
*/
public String decrypt(final String encoded) throws Exception {
- final String line = new String(Base64.decodeBase64(encoded));
+ final String line = new String(Base64.decodeBase64(encoded), StandardCharsets.UTF_8);
final String[] parts = line.split("::");
return new String(encryptor
.decrypt(Base64.decodeBase64(parts[0]), Base64.decodeBase64(parts[1]),
- Base64.decodeBase64(parts[2])), "UTF8");
+ Base64.decodeBase64(parts[2])), StandardCharsets.UTF_8);
}
/**
@@ -679,7 +680,7 @@ public class RemoteAliasService implements AliasService {
&& aliasService instanceof RemoteAliasService) {
try {
((RemoteAliasService) aliasService)
- .addAliasForClusterLocally(cluster, alias, remoteAliasService.decrypt(new String(data)));
+ .addAliasForClusterLocally(cluster, alias, remoteAliasService.decrypt(new String(data, StandardCharsets.UTF_8)));
} catch (final Exception e) {
/* log and move on */
LOG.errorAddingAliasLocally(cluster, alias, e.toString());
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-server/src/main/java/org/apache/knox/gateway/topology/monitor/DefaultRemoteConfigurationMonitor.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/topology/monitor/DefaultRemoteConfigurationMonitor.java b/gateway-server/src/main/java/org/apache/knox/gateway/topology/monitor/DefaultRemoteConfigurationMonitor.java
index 6501288..d90ae03 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/topology/monitor/DefaultRemoteConfigurationMonitor.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/topology/monitor/DefaultRemoteConfigurationMonitor.java
@@ -20,19 +20,19 @@ import org.apache.commons.io.FileUtils;
import org.apache.knox.gateway.GatewayMessages;
import org.apache.knox.gateway.config.GatewayConfig;
import org.apache.knox.gateway.i18n.messages.MessagesFactory;
+import org.apache.knox.gateway.services.config.client.RemoteConfigurationRegistryClient;
import org.apache.knox.gateway.services.config.client.RemoteConfigurationRegistryClient.ChildEntryListener;
import org.apache.knox.gateway.services.config.client.RemoteConfigurationRegistryClient.EntryListener;
-import org.apache.knox.gateway.services.config.client.RemoteConfigurationRegistryClient;
import org.apache.knox.gateway.services.config.client.RemoteConfigurationRegistryClientService;
import org.apache.zookeeper.ZooDefs;
import java.io.File;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-
class DefaultRemoteConfigurationMonitor implements RemoteConfigurationMonitor {
private static final String NODE_KNOX = "/knox";
@@ -155,7 +155,7 @@ class DefaultRemoteConfigurationMonitor implements RemoteConfigurationMonitor {
for (String providerConfig : providerConfigs) {
File localFile = new File(providersDir, providerConfig);
- byte[] remoteContent = client.getEntryData(NODE_KNOX_PROVIDERS + "/" + providerConfig).getBytes();
+ byte[] remoteContent = client.getEntryData(NODE_KNOX_PROVIDERS + "/" + providerConfig).getBytes(StandardCharsets.UTF_8);
if (!localFile.exists() || !Arrays.equals(remoteContent, FileUtils.readFileToByteArray(localFile))) {
FileUtils.writeByteArrayToFile(localFile, remoteContent);
log.downloadedRemoteConfigFile(providersDir.getName(), providerConfig);
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-server/src/main/java/org/apache/knox/gateway/topology/simple/ProviderConfigurationParser.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/topology/simple/ProviderConfigurationParser.java b/gateway-server/src/main/java/org/apache/knox/gateway/topology/simple/ProviderConfigurationParser.java
index 4515ff7..7c7c20b 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/topology/simple/ProviderConfigurationParser.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/topology/simple/ProviderConfigurationParser.java
@@ -33,7 +33,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
+import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -45,7 +45,7 @@ public class ProviderConfigurationParser {
private static final String EXT_YML = "yml";
private static final String EXT_YAML = "yaml";
- public static final List<String> SUPPORTED_EXTENSIONS = Arrays.asList(EXT_XML, EXT_JSON, EXT_YML, EXT_YAML);
+ public static final List<String> SUPPORTED_EXTENSIONS = Collections.unmodifiableList(Arrays.asList(EXT_XML, EXT_JSON, EXT_YML, EXT_YAML));
public static ProviderConfiguration parse(String path) throws Exception {
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-server/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorHandler.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorHandler.java b/gateway-server/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorHandler.java
index f3bc172..affd46f 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorHandler.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/topology/simple/SimpleDescriptorHandler.java
@@ -16,15 +16,27 @@
*/
package org.apache.knox.gateway.topology.simple;
+import org.apache.knox.gateway.GatewayServer;
+import org.apache.knox.gateway.config.GatewayConfig;
+import org.apache.knox.gateway.i18n.messages.MessagesFactory;
+import org.apache.knox.gateway.services.GatewayServices;
+import org.apache.knox.gateway.services.Service;
+import org.apache.knox.gateway.services.security.AliasService;
+import org.apache.knox.gateway.services.security.KeystoreService;
+import org.apache.knox.gateway.services.security.MasterService;
+import org.apache.knox.gateway.topology.discovery.DefaultServiceDiscoveryConfig;
+import org.apache.knox.gateway.topology.discovery.ServiceDiscovery;
+import org.apache.knox.gateway.topology.discovery.ServiceDiscoveryFactory;
+
import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileWriter;
+import java.io.FileOutputStream;
import java.io.IOException;
-
+import java.io.OutputStreamWriter;
import java.io.StringWriter;
import java.net.URI;
import java.net.URISyntaxException;
-
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -33,19 +45,6 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-import org.apache.knox.gateway.GatewayServer;
-import org.apache.knox.gateway.config.GatewayConfig;
-import org.apache.knox.gateway.i18n.messages.MessagesFactory;
-import org.apache.knox.gateway.services.GatewayServices;
-import org.apache.knox.gateway.services.Service;
-import org.apache.knox.gateway.services.security.AliasService;
-import org.apache.knox.gateway.services.security.KeystoreService;
-import org.apache.knox.gateway.services.security.MasterService;
-import org.apache.knox.gateway.topology.discovery.DefaultServiceDiscoveryConfig;
-import org.apache.knox.gateway.topology.discovery.ServiceDiscovery;
-import org.apache.knox.gateway.topology.discovery.ServiceDiscoveryFactory;
-
-
/**
* Processes simple topology descriptors, producing full topology files, which can subsequently be deployed to the
* gateway.
@@ -577,7 +576,7 @@ public class SimpleDescriptorHandler {
}
topologyDescriptor = new File(destDirectory, topologyFilename + ".xml");
- fw = new BufferedWriter(new FileWriter(topologyDescriptor));
+ fw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(topologyDescriptor), StandardCharsets.UTF_8));
fw.write(sw.toString());
fw.flush();
} catch (IOException e) {
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-server/src/main/java/org/apache/knox/gateway/trace/ErrorHandler.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/trace/ErrorHandler.java b/gateway-server/src/main/java/org/apache/knox/gateway/trace/ErrorHandler.java
deleted file mode 100644
index 694159d..0000000
--- a/gateway-server/src/main/java/org/apache/knox/gateway/trace/ErrorHandler.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.knox.gateway.trace;
-
-import org.eclipse.jetty.server.Request;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.Set;
-
-public class ErrorHandler extends org.eclipse.jetty.server.handler.ErrorHandler {
-
- private Set<Integer> bodyFilter;
-
- public void setTracedBodyFilter( String s ) {
- bodyFilter = TraceUtil.parseIntegerSet( s );
- }
-
- @Override
- public void handle( String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response )
- throws IOException {
- HttpServletResponse traceResponse = new TraceResponse( response, bodyFilter );
- super.handle( target, baseRequest, request, traceResponse );
- }
-
-}
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-server/src/main/java/org/apache/knox/gateway/trace/KnoxErrorHandler.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/trace/KnoxErrorHandler.java b/gateway-server/src/main/java/org/apache/knox/gateway/trace/KnoxErrorHandler.java
new file mode 100644
index 0000000..3310ca3
--- /dev/null
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/trace/KnoxErrorHandler.java
@@ -0,0 +1,43 @@
+/**
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.knox.gateway.trace;
+
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.handler.ErrorHandler;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Set;
+
+public class KnoxErrorHandler extends ErrorHandler {
+
+ private Set<Integer> bodyFilter;
+
+ public void setTracedBodyFilter( String s ) {
+ bodyFilter = TraceUtil.parseIntegerSet( s );
+ }
+
+ @Override
+ public void handle( String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response )
+ throws IOException {
+ HttpServletResponse traceResponse = new TraceResponse( response, bodyFilter );
+ super.handle( target, baseRequest, request, traceResponse );
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-server/src/main/java/org/apache/knox/gateway/util/KnoxCLI.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/util/KnoxCLI.java b/gateway-server/src/main/java/org/apache/knox/gateway/util/KnoxCLI.java
index 6524ca0..6ff8a91 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/util/KnoxCLI.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/util/KnoxCLI.java
@@ -17,30 +17,19 @@
*/
package org.apache.knox.gateway.util;
-import java.io.BufferedReader;
-import java.io.Console;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintStream;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.security.cert.Certificate;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.UUID;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLException;
-
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.io.FileUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
+import org.apache.hadoop.util.Tool;
+import org.apache.hadoop.util.ToolRunner;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.conn.ssl.SSLContexts;
+import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
import org.apache.knox.gateway.GatewayCommandLine;
import org.apache.knox.gateway.config.GatewayConfig;
import org.apache.knox.gateway.config.impl.GatewayConfigImpl;
@@ -60,15 +49,6 @@ import org.apache.knox.gateway.services.topology.TopologyService;
import org.apache.knox.gateway.topology.Provider;
import org.apache.knox.gateway.topology.Topology;
import org.apache.knox.gateway.topology.validation.TopologyValidator;
-import org.apache.hadoop.util.Tool;
-import org.apache.hadoop.util.ToolRunner;
-import org.apache.http.client.ClientProtocolException;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.conn.ssl.SSLContexts;
-import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
import org.apache.log4j.PropertyConfigurator;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
@@ -83,6 +63,27 @@ import org.eclipse.persistence.oxm.MediaType;
import org.jboss.shrinkwrap.api.exporter.ExplodedExporter;
import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLException;
+import java.io.BufferedReader;
+import java.io.Console;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.PrintStream;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.nio.charset.StandardCharsets;
+import java.security.cert.Certificate;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.UUID;
+
/**
*
*/
@@ -1473,7 +1474,7 @@ public class KnoxCLI extends Configured implements Tool {
this.username = c.readLine("Username: ");
}else{
try {
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
+ BufferedReader reader = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8));
out.println("Username: ");
this.username = reader.readLine();
reader.close();
@@ -1490,7 +1491,7 @@ public class KnoxCLI extends Configured implements Tool {
this.password = c.readPassword("Password: ");
}else{
try {
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
+ BufferedReader reader = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8));
out.println("Password: ");
String pw = reader.readLine();
if(pw != null){
@@ -1766,7 +1767,7 @@ public class KnoxCLI extends Configured implements Tool {
String authString = "";
// Create Authorization String
if( user != null && pass != null) {
- authString = "Basic " + Base64.encodeBase64String((user + ":" + pass).getBytes());
+ authString = "Basic " + Base64.encodeBase64String((user + ":" + pass).getBytes(StandardCharsets.UTF_8));
} else {
out.println("Username and/or password not supplied. Expect HTTP 401 Unauthorized responses.");
}
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-server/src/main/java/org/apache/knox/gateway/util/ServiceDefinitionsLoader.java
----------------------------------------------------------------------
diff --git a/gateway-server/src/main/java/org/apache/knox/gateway/util/ServiceDefinitionsLoader.java b/gateway-server/src/main/java/org/apache/knox/gateway/util/ServiceDefinitionsLoader.java
index 5c97100..ad72342 100644
--- a/gateway-server/src/main/java/org/apache/knox/gateway/util/ServiceDefinitionsLoader.java
+++ b/gateway-server/src/main/java/org/apache/knox/gateway/util/ServiceDefinitionsLoader.java
@@ -38,6 +38,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
+import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
@@ -117,10 +118,10 @@ public class ServiceDefinitionsLoader {
public static UrlRewriteRulesDescriptor loadRewriteRules(File servicesDir) {
File rewriteFile = new File(servicesDir, REWRITE_FILE);
if ( rewriteFile.exists() ) {
- InputStream stream = null;
+ InputStream stream;
try {
stream = new FileInputStream(rewriteFile);
- Reader reader = new InputStreamReader(stream);
+ Reader reader = new InputStreamReader(stream, StandardCharsets.UTF_8);
UrlRewriteRulesDescriptor rules = UrlRewriteRulesDescriptorFactory.load(
"xml", reader);
reader.close();
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-service-rm/src/main/java/org/apache/knox/gateway/rm/dispatch/RMHaBaseDispatcher.java
----------------------------------------------------------------------
diff --git a/gateway-service-rm/src/main/java/org/apache/knox/gateway/rm/dispatch/RMHaBaseDispatcher.java b/gateway-service-rm/src/main/java/org/apache/knox/gateway/rm/dispatch/RMHaBaseDispatcher.java
index 82cc247..f1ef169 100644
--- a/gateway-service-rm/src/main/java/org/apache/knox/gateway/rm/dispatch/RMHaBaseDispatcher.java
+++ b/gateway-service-rm/src/main/java/org/apache/knox/gateway/rm/dispatch/RMHaBaseDispatcher.java
@@ -16,21 +16,24 @@ package org.apache.knox.gateway.rm.dispatch;
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.entity.BufferedHttpEntity;
import org.apache.knox.gateway.dispatch.DefaultDispatch;
import org.apache.knox.gateway.filter.AbstractGatewayFilter;
import org.apache.knox.gateway.ha.provider.HaProvider;
import org.apache.knox.gateway.ha.provider.impl.HaServiceConfigConstants;
import org.apache.knox.gateway.i18n.messages.MessagesFactory;
import org.apache.knox.gateway.rm.i18n.RMMessages;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.methods.HttpRequestBase;
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.http.entity.BufferedHttpEntity;
+
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.URI;
+import java.nio.charset.StandardCharsets;
import java.util.concurrent.atomic.AtomicInteger;
class RMHaBaseDispatcher extends DefaultDispatch {
@@ -119,7 +122,7 @@ class RMHaBaseDispatcher extends DefaultDispatch {
inboundResponse.setEntity(entity);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
inboundResponse.getEntity().writeTo(outputStream);
- String body = new String(outputStream.toByteArray());
+ String body = new String(outputStream.toByteArray(), StandardCharsets.UTF_8);
if (body.contains("This is standby RM")) {
throw new StandbyException();
}
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-service-test/src/main/java/org/apache/knox/gateway/service/test/ServiceTestResource.java
----------------------------------------------------------------------
diff --git a/gateway-service-test/src/main/java/org/apache/knox/gateway/service/test/ServiceTestResource.java b/gateway-service-test/src/main/java/org/apache/knox/gateway/service/test/ServiceTestResource.java
index 7b74ff3..63a8189 100644
--- a/gateway-service-test/src/main/java/org/apache/knox/gateway/service/test/ServiceTestResource.java
+++ b/gateway-service-test/src/main/java/org/apache/knox/gateway/service/test/ServiceTestResource.java
@@ -17,12 +17,20 @@
*/
package org.apache.knox.gateway.service.test;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.utils.URIBuilder;
+import org.apache.http.conn.ssl.SSLContexts;
+import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.knox.gateway.config.GatewayConfig;
+import org.apache.knox.gateway.services.GatewayServices;
+import org.apache.knox.gateway.services.topology.TopologyService;
+import org.apache.knox.gateway.topology.Service;
+import org.apache.knox.gateway.topology.Topology;
+import org.glassfish.jersey.internal.util.Base64;
+
import javax.net.ssl.SSLContext;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
@@ -36,20 +44,13 @@ import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
-
-import org.apache.knox.gateway.config.GatewayConfig;
-import org.apache.knox.gateway.services.GatewayServices;
-import org.apache.knox.gateway.services.topology.TopologyService;
-import org.apache.knox.gateway.topology.Service;
-import org.apache.knox.gateway.topology.Topology;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.utils.URIBuilder;
-import org.apache.http.conn.ssl.SSLContexts;
-import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.glassfish.jersey.internal.util.Base64;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import static javax.ws.rs.core.MediaType.APPLICATION_XML;
@@ -76,7 +77,7 @@ public class ServiceTestResource {
// Create Authorization String
if( username != null && password != null) {
- authString = "Basic " + Base64.encodeAsString((username + ":" + password).getBytes());
+ authString = "Basic " + Base64.encodeAsString((username + ":" + password).getBytes(StandardCharsets.UTF_8));
} else if (request.getHeader("Authorization") != null) {
authString = request.getHeader("Authorization");
} else {
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-service-webhdfs/src/main/java/org/apache/knox/gateway/hdfs/dispatch/AbstractHdfsHaDispatch.java
----------------------------------------------------------------------
diff --git a/gateway-service-webhdfs/src/main/java/org/apache/knox/gateway/hdfs/dispatch/AbstractHdfsHaDispatch.java b/gateway-service-webhdfs/src/main/java/org/apache/knox/gateway/hdfs/dispatch/AbstractHdfsHaDispatch.java
index 1bd4136..64d94b4 100644
--- a/gateway-service-webhdfs/src/main/java/org/apache/knox/gateway/hdfs/dispatch/AbstractHdfsHaDispatch.java
+++ b/gateway-service-webhdfs/src/main/java/org/apache/knox/gateway/hdfs/dispatch/AbstractHdfsHaDispatch.java
@@ -17,15 +17,6 @@
*/
package org.apache.knox.gateway.hdfs.dispatch;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.net.URI;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.client.methods.HttpUriRequest;
@@ -38,6 +29,15 @@ import org.apache.knox.gateway.ha.provider.impl.HaServiceConfigConstants;
import org.apache.knox.gateway.hdfs.i18n.WebHdfsMessages;
import org.apache.knox.gateway.i18n.messages.MessagesFactory;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.net.URI;
+import java.nio.charset.StandardCharsets;
+import java.util.concurrent.atomic.AtomicInteger;
+
public abstract class AbstractHdfsHaDispatch extends HdfsHttpClientDispatch {
private static final String FAILOVER_COUNTER_ATTRIBUTE = "dispatch.ha.failover.counter";
@@ -104,7 +104,7 @@ public abstract class AbstractHdfsHaDispatch extends HdfsHttpClientDispatch {
inboundResponse.setEntity(entity);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
inboundResponse.getEntity().writeTo(outputStream);
- String body = new String(outputStream.toByteArray());
+ String body = new String(outputStream.toByteArray(), StandardCharsets.UTF_8);
if (body.contains("StandbyException")) {
throw new StandbyException();
}
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-shell/src/main/java/org/apache/knox/gateway/shell/KnoxSh.java
----------------------------------------------------------------------
diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/KnoxSh.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/KnoxSh.java
index 7993a47..c80581f 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/KnoxSh.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/KnoxSh.java
@@ -17,12 +17,18 @@
*/
package org.apache.knox.gateway.shell;
+import org.apache.knox.gateway.shell.knox.token.Get;
+import org.apache.knox.gateway.shell.knox.token.Token;
+import org.apache.knox.gateway.util.JsonUtils;
+
import java.io.BufferedReader;
import java.io.File;
+import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.FileReader;
import java.io.IOException;
+import java.io.InputStreamReader;
import java.io.PrintStream;
+import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.attribute.PosixFilePermission;
@@ -34,10 +40,6 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import org.apache.knox.gateway.shell.knox.token.Token;
-import org.apache.knox.gateway.util.JsonUtils;
-import org.apache.knox.gateway.shell.knox.token.Get;
-
/**
*
*/
@@ -275,7 +277,7 @@ public class KnoxSh {
}
private String readFile(String file) throws IOException {
- BufferedReader reader = new BufferedReader(new FileReader (file));
+ BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8));
String line = null;
String content = null;
StringBuilder stringBuilder = new StringBuilder();
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-spi/src/main/java/org/apache/knox/gateway/dispatch/DefaultDispatch.java
----------------------------------------------------------------------
diff --git a/gateway-spi/src/main/java/org/apache/knox/gateway/dispatch/DefaultDispatch.java b/gateway-spi/src/main/java/org/apache/knox/gateway/dispatch/DefaultDispatch.java
index 4f8c82f..8757192 100644
--- a/gateway-spi/src/main/java/org/apache/knox/gateway/dispatch/DefaultDispatch.java
+++ b/gateway-spi/src/main/java/org/apache/knox/gateway/dispatch/DefaultDispatch.java
@@ -17,6 +17,17 @@
*/
package org.apache.knox.gateway.dispatch;
+import org.apache.http.Header;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpDelete;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpHead;
+import org.apache.http.client.methods.HttpOptions;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpPut;
+import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.entity.ContentType;
import org.apache.knox.gateway.SpiGatewayMessages;
import org.apache.knox.gateway.SpiGatewayResources;
import org.apache.knox.gateway.audit.api.Action;
@@ -31,17 +42,6 @@ import org.apache.knox.gateway.config.GatewayConfig;
import org.apache.knox.gateway.i18n.messages.MessagesFactory;
import org.apache.knox.gateway.i18n.resources.ResourcesFactory;
import org.apache.knox.gateway.util.MimeTypes;
-import org.apache.http.Header;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.methods.HttpDelete;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpHead;
-import org.apache.http.client.methods.HttpOptions;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.client.methods.HttpPut;
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.http.entity.ContentType;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -63,7 +63,7 @@ public class DefaultDispatch extends AbstractGatewayDispatch {
protected static final SpiGatewayMessages LOG = MessagesFactory.get(SpiGatewayMessages.class);
protected static final SpiGatewayResources RES = ResourcesFactory.get(SpiGatewayResources.class);
- protected static Auditor auditor = AuditServiceFactory.getAuditService().getAuditor(AuditConstants.DEFAULT_AUDITOR_NAME,
+ protected static final Auditor auditor = AuditServiceFactory.getAuditService().getAuditor(AuditConstants.DEFAULT_AUDITOR_NAME,
AuditConstants.KNOX_SERVICE_NAME, AuditConstants.KNOX_COMPONENT_NAME);
private Set<String> outboundResponseExcludeHeaders;
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-spi/src/main/java/org/apache/knox/gateway/services/hostmap/FileBasedHostMapper.java
----------------------------------------------------------------------
diff --git a/gateway-spi/src/main/java/org/apache/knox/gateway/services/hostmap/FileBasedHostMapper.java b/gateway-spi/src/main/java/org/apache/knox/gateway/services/hostmap/FileBasedHostMapper.java
index 1a9c958..30631f0 100644
--- a/gateway-spi/src/main/java/org/apache/knox/gateway/services/hostmap/FileBasedHostMapper.java
+++ b/gateway-spi/src/main/java/org/apache/knox/gateway/services/hostmap/FileBasedHostMapper.java
@@ -22,6 +22,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
+import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
@@ -33,7 +34,7 @@ public class FileBasedHostMapper implements HostMapper {
public FileBasedHostMapper( URL url ) throws IOException {
if( url != null ) {
InputStream stream = url.openStream();
- BufferedReader reader = new BufferedReader( new InputStreamReader( stream ) );
+ BufferedReader reader = new BufferedReader( new InputStreamReader( stream, StandardCharsets.UTF_8 ) );
String line = reader.readLine();
while( line != null ) {
String[] lineSplit = line.split( "=" );
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/impl/BaseKeystoreService.java
----------------------------------------------------------------------
diff --git a/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/impl/BaseKeystoreService.java b/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/impl/BaseKeystoreService.java
index 8155d7a..999a00c 100644
--- a/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/impl/BaseKeystoreService.java
+++ b/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/impl/BaseKeystoreService.java
@@ -29,6 +29,7 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.security.Key;
import java.security.KeyStore;
import java.security.KeyStoreException;
@@ -197,7 +198,7 @@ public class BaseKeystoreService {
protected char[] getCredential(String alias, char[] credential, KeyStore ks) {
if (ks != null) {
try {
- credential = new String(ks.getKey(alias, masterService.getMasterSecret()).getEncoded()).toCharArray();
+ credential = new String(ks.getKey(alias, masterService.getMasterSecret()).getEncoded(), StandardCharsets.UTF_8).toCharArray();
} catch (UnrecoverableKeyException e) {
LOG.failedToGetCredential(e);
} catch (KeyStoreException e) {
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/impl/CMFMasterService.java
----------------------------------------------------------------------
diff --git a/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/impl/CMFMasterService.java b/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/impl/CMFMasterService.java
index b39e6ab..fa7736a 100644
--- a/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/impl/CMFMasterService.java
+++ b/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/impl/CMFMasterService.java
@@ -29,6 +29,7 @@ import org.apache.knox.gateway.services.security.EncryptionResult;
import java.io.Console;
import java.io.File;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -162,10 +163,10 @@ public class CMFMasterService {
protected void initializeFromMaster(File masterFile) throws Exception {
try {
- List<String> lines = FileUtils.readLines(masterFile, "UTF8");
+ List<String> lines = FileUtils.readLines(masterFile, StandardCharsets.UTF_8);
String tag = lines.get(0);
LOG.loadingFromPersistentMaster( tag );
- String line = new String(Base64.decodeBase64(lines.get(1)));
+ String line = new String(Base64.decodeBase64(lines.get(1)), StandardCharsets.UTF_8);
String[] parts = line.split("::");
this.master = new String(encryptor.decrypt(Base64.decodeBase64(parts[0]),
Base64.decodeBase64(parts[1]), Base64.decodeBase64(parts[2])),
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-test-utils/src/main/java/org/apache/knox/test/Console.java
----------------------------------------------------------------------
diff --git a/gateway-test-utils/src/main/java/org/apache/knox/test/Console.java b/gateway-test-utils/src/main/java/org/apache/knox/test/Console.java
index 0965748..9891532 100644
--- a/gateway-test-utils/src/main/java/org/apache/knox/test/Console.java
+++ b/gateway-test-utils/src/main/java/org/apache/knox/test/Console.java
@@ -19,6 +19,7 @@ package org.apache.knox.test;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
+import java.io.UnsupportedEncodingException;
public class Console {
@@ -26,14 +27,14 @@ public class Console {
PrintStream oldErr, newErr;
ByteArrayOutputStream newOutBuf, newErrBuf;
- public void capture() {
+ public void capture() throws UnsupportedEncodingException {
oldErr = System.err;
newErrBuf = new ByteArrayOutputStream();
- newErr = new PrintStream( newErrBuf );
+ newErr = new PrintStream( newErrBuf, false, "UTF-8" );
oldOut = System.out; // I18N not required.
newOutBuf = new ByteArrayOutputStream();
- newOut = new PrintStream( newOutBuf );
+ newOut = new PrintStream( newOutBuf, false, "UTF-8" );
System.setErr( newErr );
System.setOut( newOut );
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-test-utils/src/main/java/org/apache/knox/test/TestUtils.java
----------------------------------------------------------------------
diff --git a/gateway-test-utils/src/main/java/org/apache/knox/test/TestUtils.java b/gateway-test-utils/src/main/java/org/apache/knox/test/TestUtils.java
index e5ed5c9..8d8ce24 100644
--- a/gateway-test-utils/src/main/java/org/apache/knox/test/TestUtils.java
+++ b/gateway-test-utils/src/main/java/org/apache/knox/test/TestUtils.java
@@ -17,6 +17,17 @@
*/
package org.apache.knox.test;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.log4j.Logger;
+import org.apache.velocity.Template;
+import org.apache.velocity.VelocityContext;
+import org.apache.velocity.app.VelocityEngine;
+import org.apache.velocity.runtime.RuntimeConstants;
+import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
+import org.eclipse.jetty.http.HttpTester;
+import org.eclipse.jetty.servlet.ServletTester;
+
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -30,21 +41,11 @@ import java.net.ServerSocket;
import java.net.Socket;
import java.net.URL;
import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
import java.util.Properties;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.log4j.Logger;
-import org.apache.velocity.Template;
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.VelocityEngine;
-import org.apache.velocity.runtime.RuntimeConstants;
-import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
-import org.eclipse.jetty.http.HttpTester;
-import org.eclipse.jetty.servlet.ServletTester;
-
public class TestUtils {
private static Logger LOG = Logger.getLogger(TestUtils.class);
@@ -204,10 +205,10 @@ public class TestUtils {
public static HttpTester.Response execute( ServletTester server, HttpTester.Request request ) throws Exception {
LOG.debug( "execute: request=" + request );
ByteBuffer requestBuffer = request.generate();
- LOG.trace( "execute: requestBuffer=[" + new String(requestBuffer.array(),0,requestBuffer.limit()) + "]" );
+ LOG.trace( "execute: requestBuffer=[" + new String(requestBuffer.array(),0,requestBuffer.limit(), StandardCharsets.UTF_8) + "]" );
ByteBuffer responseBuffer = server.getResponses( requestBuffer, 30, TimeUnit.SECONDS );
HttpTester.Response response = HttpTester.parseResponse( responseBuffer );
- LOG.trace( "execute: responseBuffer=[" + new String(responseBuffer.array(),0,responseBuffer.limit()) + "]" );
+ LOG.trace( "execute: responseBuffer=[" + new String(responseBuffer.array(),0,responseBuffer.limit(), StandardCharsets.UTF_8) + "]" );
LOG.debug( "execute: reponse=" + response );
return response;
}
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-util-common/src/main/java/org/apache/knox/gateway/audit/log4j/audit/Log4jAuditor.java
----------------------------------------------------------------------
diff --git a/gateway-util-common/src/main/java/org/apache/knox/gateway/audit/log4j/audit/Log4jAuditor.java b/gateway-util-common/src/main/java/org/apache/knox/gateway/audit/log4j/audit/Log4jAuditor.java
index 30ea8d4..1e2911c 100644
--- a/gateway-util-common/src/main/java/org/apache/knox/gateway/audit/log4j/audit/Log4jAuditor.java
+++ b/gateway-util-common/src/main/java/org/apache/knox/gateway/audit/log4j/audit/Log4jAuditor.java
@@ -37,7 +37,7 @@ public class Log4jAuditor implements Auditor {
/** Comma seperated list of query parameters who's values will be masked
* e.g. -Dmasked_params=knoxtoken,ccNumber
**/
- public static String MASKED_QUERY_PARAMS_OPTION = "masked_params";
+ public static final String MASKED_QUERY_PARAMS_OPTION = "masked_params";
private Logger logger;
private String componentName;
private String serviceName;
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/gateway-util-configinjector/src/main/java/org/apache/knox/gateway/config/impl/DefaultConfigurationInjector.java
----------------------------------------------------------------------
diff --git a/gateway-util-configinjector/src/main/java/org/apache/knox/gateway/config/impl/DefaultConfigurationInjector.java b/gateway-util-configinjector/src/main/java/org/apache/knox/gateway/config/impl/DefaultConfigurationInjector.java
index ad48199..f211e28 100755
--- a/gateway-util-configinjector/src/main/java/org/apache/knox/gateway/config/impl/DefaultConfigurationInjector.java
+++ b/gateway-util-configinjector/src/main/java/org/apache/knox/gateway/config/impl/DefaultConfigurationInjector.java
@@ -18,14 +18,14 @@
package org.apache.knox.gateway.config.impl;
import org.apache.commons.beanutils.ConvertUtilsBean2;
+import org.apache.knox.gateway.config.Alias;
import org.apache.knox.gateway.config.ConfigurationAdapter;
+import org.apache.knox.gateway.config.ConfigurationBinding;
import org.apache.knox.gateway.config.ConfigurationException;
import org.apache.knox.gateway.config.Configure;
-import org.apache.knox.gateway.config.spi.ConfigurationInjector;
-import org.apache.knox.gateway.config.Alias;
-import org.apache.knox.gateway.config.ConfigurationBinding;
import org.apache.knox.gateway.config.Default;
import org.apache.knox.gateway.config.Optional;
+import org.apache.knox.gateway.config.spi.ConfigurationInjector;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
@@ -157,7 +157,7 @@ public class DefaultConfigurationInjector implements ConfigurationInjector {
private <T extends Annotation> T findAnnotation( Annotation[] annotations, Class<T> type ) {
T found = null;
for( Annotation current : annotations ) {
- if( type.isAssignableFrom( current.getClass() ) ) {
+ if( type.isAssignableFrom( current.annotationType() ) ) {
found = (T)current;
break;
}
http://git-wip-us.apache.org/repos/asf/knox/blob/5bf7bc5d/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 09b0f0e..f9965a1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -103,6 +103,12 @@
</modules>
<properties>
+ <!--
+ It is recommended to set the compiler version globally,
+ as the compiler plugin and the forbidden API checker both
+ use this version
+ -->
+ <maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<repo.id>internal.repo</repo.id>
@@ -112,18 +118,23 @@
<gateway-artifact>knox</gateway-artifact>
<gateway-version>1.2.0-SNAPSHOT</gateway-version>
<gateway-group>org.apache.knox</gateway-group>
+
+ <!-- Dependencies sorted alphabetically -->
+ <apacheds-version>2.0.0-M16</apacheds-version>
+ <commons-beanutils-version>1.9.3</commons-beanutils-version>
+ <failsafe-version>2.19.1</failsafe-version>
+ <findsecbugs-plugin.version>1.8.0</findsecbugs-plugin.version>
<groovy-version>2.4.8</groovy-version>
<hadoop-version>3.0.0</hadoop-version>
<jackson.version>2.9.5</jackson.version>
- <jetty-version>9.2.25.v20180606</jetty-version>
- <mockito-version>1.10.19</mockito-version>
- <surefire-version>2.16</surefire-version>
- <failsafe-version>2.19.1</failsafe-version>
- <apacheds-version>2.0.0-M16</apacheds-version>
<javax-websocket-version>1.1</javax-websocket-version>
+ <jetty-version>9.2.25.v20180606</jetty-version>
<metrics-version>3.1.2</metrics-version>
+ <mockito-version>1.10.19</mockito-version>
<shiro.version>1.2.6</shiro.version>
- <commons-beanutils-version>1.9.3</commons-beanutils-version>
+ <spotbugs.version>3.1.7</spotbugs.version>
+ <spotbugs-maven-plugin.version>3.1.6</spotbugs-maven-plugin.version>
+ <surefire-version>2.16</surefire-version>
</properties>
<licenses>
@@ -183,7 +194,9 @@
<execution>
<id>source</id>
<phase>package</phase>
- <goals><goal>single</goal></goals>
+ <goals>
+ <goal>single</goal>
+ </goals>
<configuration>
<finalName>${gateway-artifact}-${gateway-version}</finalName>
<outputDirectory>target/${gateway-version}</outputDirectory>
@@ -227,7 +240,9 @@
<executions>
<execution>
<phase>verify</phase>
- <goals><goal>check</goal></goals>
+ <goals>
+ <goal>check</goal>
+ </goals>
</execution>
</executions>
<configuration>
@@ -298,12 +313,10 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>3.3</version>
+ <version>3.8.0</version>
<configuration>
- <compilerId>javac</compilerId>
- <source>1.8</source>
- <target>1.8</target>
- <debug>true</debug>
+ <source>${maven.compiler.target}</source>
+ <target>${maven.compiler.target}</target>
</configuration>
<dependencies>
<dependency>
@@ -351,25 +364,56 @@
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M1</version>
<executions>
- <execution>
- <id>enforce-maven</id>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <requireMavenVersion>
- <version>[3.0.2,)</version>
- </requireMavenVersion>
- <requireJavaVersion>
- <version>[1.8,)</version>
- </requireJavaVersion>
- </rules>
- </configuration>
- </execution>
+ <execution>
+ <id>enforce-maven</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <requireMavenVersion>
+ <version>[3.0.2,)</version>
+ </requireMavenVersion>
+ <requireJavaVersion>
+ <version>[1.8,)</version>
+ </requireJavaVersion>
+ </rules>
+ </configuration>
+ </execution>
</executions>
</plugin>
-
+ <plugin>
+ <groupId>com.github.spotbugs</groupId>
+ <artifactId>spotbugs-maven-plugin</artifactId>
+ <version>${spotbugs-maven-plugin.version}</version>
+ <configuration>
+ <threshold>High</threshold>
+ <failOnError>true</failOnError>
+ <excludeFilterFile>${session.executionRootDirectory}/src/spotbugs-filter.xml</excludeFilterFile>
+ <plugins>
+ <plugin>
+ <groupId>com.h3xstream.findsecbugs</groupId>
+ <artifactId>findsecbugs-plugin</artifactId>
+ <version>${findsecbugs-plugin.version}</version> <!-- Auto-update to the latest stable -->
+ </plugin>
+ </plugins>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ <dependencies>
+ <!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
+ <dependency>
+ <groupId>com.github.spotbugs</groupId>
+ <artifactId>spotbugs</artifactId>
+ <version>${spotbugs.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
</plugins>
</build>
@@ -419,11 +463,6 @@
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
- <artifactId>findbugs-maven-plugin</artifactId>
- <version>2.5.2</version>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
<artifactId>javancss-maven-plugin</artifactId>
<version>2.0-beta-2</version>
</plugin>
@@ -763,16 +802,16 @@
<version>2.6</version>
</dependency>
<dependency>
- <groupId>com.nimbusds</groupId>
- <artifactId>nimbus-jose-jwt</artifactId>
- <version>4.41.2</version>
- <scope>compile</scope>
- <exclusions>
- <exclusion>
- <groupId>org.bouncycastle</groupId>
- <artifactId>bcprov-jdk15on</artifactId>
- </exclusion>
- </exclusions>
+ <groupId>com.nimbusds</groupId>
+ <artifactId>nimbus-jose-jwt</artifactId>
+ <version>4.41.2</version>
+ <scope>compile</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk15on</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>net.minidev</groupId>
@@ -823,7 +862,7 @@
<version>2.5.2</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>com.thetransactioncompany</groupId>
<artifactId>cors-filter</artifactId>
<version>2.4</version>
@@ -1231,7 +1270,7 @@
<version>${jetty-version}</version>
</dependency>
- <!-- Websocket support -->
+ <!-- Websocket support -->
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-server</artifactId>