You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ud...@apache.org on 2016/09/12 19:30:48 UTC
[07/11] incubator-geode git commit: Revert "GEODE-1570: upgrade
spring libraries and fix tests"
Revert "GEODE-1570: upgrade spring libraries and fix tests"
This reverts commit 906c211ab1f6bacbd29a6d21d8186bb0787173f9.
Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/8fd8d79d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/8fd8d79d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/8fd8d79d
Branch: refs/heads/feature/GEODE-420
Commit: 8fd8d79dfd67b325da1497ce7ad5c78b6aa9c6b5
Parents: c1216eb
Author: Jinmei Liao <ji...@pivotal.io>
Authored: Thu Sep 8 14:14:52 2016 -0700
Committer: Jinmei Liao <ji...@pivotal.io>
Committed: Thu Sep 8 14:17:46 2016 -0700
----------------------------------------------------------------------
.../internal/web/RestInterfaceJUnitTest.java | 51 +++-----
.../internal/web/RestSecurityDUnitTest.java | 128 +++++--------------
.../src/test/resources/expected_jars.txt | 2 +-
geode-core/build.gradle | 2 -
.../cli/shell/GfshInitFileJUnitTest.java | 18 ++-
geode-pulse/build.gradle | 4 +
.../security/GemFireAuthentication.java | 2 +-
.../security/GemFireAuthenticationProvider.java | 1 +
.../service/MemberGatewayHubService.java | 11 +-
geode-pulse/src/main/webapp/Login.html | 6 +-
.../webapp/WEB-INF/mvc-dispatcher-servlet.xml | 6 +-
.../src/main/webapp/WEB-INF/spring-security.xml | 17 +--
.../tools/pulse/tests/PulseAuthTest.java | 5 +-
.../tools/pulse/tests/PulseAutomatedTest.java | 2 +-
.../rest/internal/web/util/JSONUtils.java | 105 +++++++++++++--
.../rest/internal/web/util/JsonWriter.java | 24 ++++
.../src/main/webapp/WEB-INF/geode-servlet.xml | 14 +-
.../main/webapp/WEB-INF/geode-mgmt-servlet.xml | 6 +-
gradle/dependency-resolution.gradle | 19 +++
gradle/dependency-versions.properties | 20 +--
20 files changed, 251 insertions(+), 192 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestInterfaceJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestInterfaceJUnitTest.java b/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestInterfaceJUnitTest.java
index 27859fc..8246671 100644
--- a/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestInterfaceJUnitTest.java
+++ b/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestInterfaceJUnitTest.java
@@ -16,26 +16,16 @@
*/
package com.gemstone.gemfire.rest.internal.web;
-import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
-import static org.junit.Assert.*;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Properties;
-import java.util.Set;
-
-import javax.annotation.Resource;
-
import com.fasterxml.jackson.core.JsonParser.Feature;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.gemstone.gemfire.cache.*;
+import com.gemstone.gemfire.internal.AvailablePortHelper;
+import com.gemstone.gemfire.internal.GemFireVersion;
+import com.gemstone.gemfire.internal.util.IOUtils;
+import com.gemstone.gemfire.management.internal.AgentUtil;
+import com.gemstone.gemfire.pdx.*;
+import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -52,22 +42,15 @@ import org.springframework.util.StringUtils;
import org.springframework.web.client.ResponseErrorHandler;
import org.springframework.web.client.RestTemplate;
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.DataPolicy;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionFactory;
-import com.gemstone.gemfire.cache.RegionService;
-import com.gemstone.gemfire.internal.AvailablePortHelper;
-import com.gemstone.gemfire.internal.GemFireVersion;
-import com.gemstone.gemfire.internal.util.IOUtils;
-import com.gemstone.gemfire.management.internal.AgentUtil;
-import com.gemstone.gemfire.pdx.PdxInstance;
-import com.gemstone.gemfire.pdx.PdxReader;
-import com.gemstone.gemfire.pdx.PdxSerializable;
-import com.gemstone.gemfire.pdx.PdxWriter;
-import com.gemstone.gemfire.pdx.ReflectionBasedAutoSerializer;
-import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
+import javax.annotation.Resource;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import static com.gemstone.gemfire.distributed.ConfigurationProperties.*;
+import static org.junit.Assert.*;
/**
* The GemFireRestInterfaceTest class is a test suite of test cases testing the contract and functionality of the
@@ -77,6 +60,8 @@ import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
*
* @see org.junit.Test
* @see org.junit.runner.RunWith
+ * @see org.springframework.test.context.ContextConfiguration
+ * @see org.springframework.test.context.junit4.SpringJUnit4ClassRunner
* @see org.springframework.web.client.RestTemplate
* @see com.gemstone.gemfire.cache.Cache
* @see com.gemstone.gemfire.cache.Region
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestSecurityDUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestSecurityDUnitTest.java b/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestSecurityDUnitTest.java
index 63ea06e..847ca76 100644
--- a/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestSecurityDUnitTest.java
+++ b/geode-assembly/src/test/java/com/gemstone/gemfire/rest/internal/web/RestSecurityDUnitTest.java
@@ -22,25 +22,15 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.net.MalformedURLException;
import org.apache.http.HttpEntity;
-import org.apache.http.HttpHost;
-import org.apache.http.HttpResponse;
-import org.apache.http.auth.AuthScope;
-import org.apache.http.auth.UsernamePasswordCredentials;
-import org.apache.http.client.AuthCache;
import org.apache.http.client.ClientProtocolException;
-import org.apache.http.client.CredentialsProvider;
-import org.apache.http.client.methods.HttpDelete;
+import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpRequestBase;
-import org.apache.http.client.protocol.HttpClientContext;
-import org.apache.http.impl.auth.BasicScheme;
-import org.apache.http.impl.client.BasicAuthCache;
-import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
+import org.json.JSONArray;
+import org.json.JSONException;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -51,106 +41,56 @@ import com.gemstone.gemfire.test.junit.categories.SecurityTest;
@Category({ DistributedTest.class, SecurityTest.class})
public class RestSecurityDUnitTest extends AbstractSecureServerDUnitTest {
-
- public final static String PROTOCOL = "http";
- public final static String HOSTNAME = "localhost";
- public final static String CONTEXT = "/gemfire-api/v1";
-
-
- public RestSecurityDUnitTest() throws MalformedURLException {
+ private String endPoint = null;
+ public RestSecurityDUnitTest(){
int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(2);
this.jmxPort = ports[0];
this.restPort = ports[1];
+ endPoint = "http://localhost:"+restPort+"/gemfire-api/v1";
}
-
@Test
public void test(){
client1.invoke(()->{
- HttpResponse response = doGet("/servers", null, null);
- assertEquals(getCode(response), 200);
- assertEquals(getResponseBody(response), "[ \""+"http://localhost:"+this.restPort+"\" ]");
+ JSONArray response = doGet("/servers");
+ assertEquals(response.length(), 1);
+ assertEquals(response.get(0), "http://localhost:"+this.restPort);
});
}
- protected HttpResponse doGet(String uri, String username, String password) throws MalformedURLException {
- HttpGet getRequest = new HttpGet(CONTEXT + uri);
- return doRequest(getRequest, username, password);
- }
- protected HttpResponse doDelete(String uri, String username, String password) throws MalformedURLException {
- HttpDelete httpDelete = new HttpDelete(CONTEXT + uri);
- return doRequest(httpDelete, username, password);
- }
-
- private HttpResponse doRequest(HttpRequestBase request, String username, String password) throws MalformedURLException {
- HttpHost targetHost = new HttpHost(HOSTNAME, this.restPort, PROTOCOL);
- CloseableHttpClient httpclient = HttpClients.custom().build();
- HttpClientContext clientContext = HttpClientContext.create();
- // if username is null, do not put in authentication
- if (username != null) {
- CredentialsProvider credsProvider = new BasicCredentialsProvider();
- credsProvider.setCredentials(new AuthScope(targetHost.getHostName(), targetHost.getPort()), new UsernamePasswordCredentials(username, password));
- httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
- AuthCache authCache = new BasicAuthCache();
- BasicScheme basicAuth = new BasicScheme();
- authCache.put(targetHost, basicAuth);
- clientContext.setCredentialsProvider(credsProvider);
- clientContext.setAuthCache(authCache);
- }
+ private JSONArray doGet(String uri) {
+ HttpGet get = new HttpGet(endPoint + uri);
+ get.addHeader("Content-Type", "application/json");
+ get.addHeader("Accept", "application/json");
+ CloseableHttpClient httpclient = HttpClients.createDefault();
+ CloseableHttpResponse response;
try {
- return httpclient.execute(targetHost, request, clientContext);
+ response = httpclient.execute(get);
+ HttpEntity entity = response.getEntity();
+ InputStream content = entity.getContent();
+ BufferedReader reader = new BufferedReader(new InputStreamReader(
+ content));
+ String line;
+ StringBuffer str = new StringBuffer();
+ while ((line = reader.readLine()) != null) {
+ str.append(line);
+ }
+
+ //validate the satus code
+ assertEquals(response.getStatusLine().getStatusCode(), 200);
+ return new JSONArray(str.toString());
} catch (ClientProtocolException e) {
e.printStackTrace();
- fail("Rest GET should not have thrown ClientProtocolException!");
+ fail(" Rest Request should not have thrown ClientProtocolException!");
} catch (IOException e) {
e.printStackTrace();
- fail("Rest GET Request should not have thrown IOException!");
+ fail(" Rest Request should not have thrown IOException!");
+ } catch (JSONException e) {
+ e.printStackTrace();
+ fail(" Rest Request should not have thrown JSONException!");
}
return null;
}
- /**
- * Check the HTTP status of the response and return if it's within the OK range
- * @param response The HttpResponse message received from the server
- *
- * @return true if the status code is a 2XX-type code (200-299), otherwise false
- */
- protected boolean isOK(HttpResponse response) {
- int returnCode = response.getStatusLine().getStatusCode();
- return (returnCode < 300 && returnCode >= 200);
- }
-
- /**
- * Check the HTTP status of the response and return true if a 401
- * @param response The HttpResponse message received from the server
- *
- * @return true if the status code is 401, otherwise false
- */
- protected boolean isUnauthorized(HttpResponse response) {
- int returnCode = response.getStatusLine().getStatusCode();
- return returnCode == 401;
- }
-
- /**
- * Retrieve the status code of the HttpResponse
- * @param response The HttpResponse message received from the server
- *
- * @return a numeric value
- */
- protected int getCode(HttpResponse response) {
- return response.getStatusLine().getStatusCode();
- }
-
- protected String getResponseBody(HttpResponse response) throws IOException {
- HttpEntity entity = response.getEntity();
- InputStream content = entity.getContent();
- BufferedReader reader = new BufferedReader(new InputStreamReader(content));
- String line;
- StringBuilder str = new StringBuilder();
- while ((line = reader.readLine()) != null) {
- str.append(line);
- }
- return str.toString();
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-assembly/src/test/resources/expected_jars.txt
----------------------------------------------------------------------
diff --git a/geode-assembly/src/test/resources/expected_jars.txt b/geode-assembly/src/test/resources/expected_jars.txt
index 89ae194..939464a 100644
--- a/geode-assembly/src/test/resources/expected_jars.txt
+++ b/geode-assembly/src/test/resources/expected_jars.txt
@@ -1,5 +1,6 @@
activation
antlr
+aopalliance
classmate
commons-beanutils
commons-collections
@@ -16,7 +17,6 @@ guava
jackson-annotations
jackson-core
jackson-databind
-jackson-module-paranamer
jackson-module-scala
jansi
javax.mail-api
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-core/build.gradle
----------------------------------------------------------------------
diff --git a/geode-core/build.gradle b/geode-core/build.gradle
index 69034ca..ea1fce2 100755
--- a/geode-core/build.gradle
+++ b/geode-core/build.gradle
@@ -79,7 +79,6 @@ dependencies {
runtime ('org.apache.logging.log4j:log4j-jul:' + project.'log4j.version') {
ext.optional = true
}
- runtime ('org.springframework:spring-core:' + project.'springframework.version')
compile ('org.eclipse.jetty:jetty-webapp:' + project.'jetty.version') {
ext.optional = true
}
@@ -95,7 +94,6 @@ dependencies {
exclude module: 'guava'
exclude module: 'spring-aop'
exclude module: 'spring-context-support'
- exclude module: 'spring-core'
ext.optional = true
}
compile ('org.iq80.snappy:snappy:' + project.'snappy-java.version') {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/shell/GfshInitFileJUnitTest.java
----------------------------------------------------------------------
diff --git a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/shell/GfshInitFileJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/shell/GfshInitFileJUnitTest.java
index 3aaab64..529336f 100755
--- a/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/shell/GfshInitFileJUnitTest.java
+++ b/geode-core/src/test/java/com/gemstone/gemfire/management/internal/cli/shell/GfshInitFileJUnitTest.java
@@ -366,10 +366,12 @@ public class GfshInitFileJUnitTest {
int expectedStatus = 0;
assertNotEquals("Status <0==failure", expectedStatus, actualStatus);
- // after upgrading to Spring-shell 1.2, the bad command exception is logged as well
- int expectedLogCount = BANNER_LINES + INIT_FILE_CITATION_LINES + 2;
+ int expectedLogCount = BANNER_LINES + INIT_FILE_CITATION_LINES + 1;
assertEquals("Log records written", expectedLogCount,
this.junitLoggerHandler.getLog().size());
+ for (LogRecord logRecord : this.junitLoggerHandler.getLog()) {
+ assertNull("No exceptions in log", logRecord.getThrown());
+ }
}
@Test
@@ -397,10 +399,12 @@ public class GfshInitFileJUnitTest {
int expectedStatus = 0;
assertNotEquals("Status <0==failure", expectedStatus, actualStatus);
- // after upgrading to Spring-shell 1.2, the bad command exception is logged as well
- int expectedLogCount = BANNER_LINES + INIT_FILE_CITATION_LINES + 2;
+ int expectedLogCount = BANNER_LINES + INIT_FILE_CITATION_LINES + 1;
assertEquals("Log records written", expectedLogCount,
this.junitLoggerHandler.getLog().size());
+ for (LogRecord logRecord : this.junitLoggerHandler.getLog()) {
+ assertNull("No exceptions in log", logRecord.getThrown());
+ }
}
@Test
@@ -429,10 +433,12 @@ public class GfshInitFileJUnitTest {
int expectedStatus = 0;
assertNotEquals("Status <0==failure", expectedStatus, actualStatus);
- // after upgrading to Spring-shell 1.2, the bad command exception is logged as well
- int expectedLogCount = BANNER_LINES + INIT_FILE_CITATION_LINES + 2;
+ int expectedLogCount = BANNER_LINES + INIT_FILE_CITATION_LINES + 1;
assertEquals("Log records written", expectedLogCount,
this.junitLoggerHandler.getLog().size());
+ for (LogRecord logRecord : this.junitLoggerHandler.getLog()) {
+ assertNull("No exceptions in log", logRecord.getThrown());
+ }
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-pulse/build.gradle
----------------------------------------------------------------------
diff --git a/geode-pulse/build.gradle b/geode-pulse/build.gradle
index 6cd3668..e53a698 100755
--- a/geode-pulse/build.gradle
+++ b/geode-pulse/build.gradle
@@ -26,6 +26,10 @@ sourceSets {
}
dependencies {
+
+
+
+
compile 'org.springframework:spring-beans:' + project.'springframework.version'
compile 'commons-beanutils:commons-beanutils:' + project.'commons-beanutils.version'
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/security/GemFireAuthentication.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/security/GemFireAuthentication.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/security/GemFireAuthentication.java
index 701607e..391ad39 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/security/GemFireAuthentication.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/security/GemFireAuthentication.java
@@ -72,7 +72,7 @@ public class GemFireAuthentication extends UsernamePasswordAuthenticationToken {
String[] signature = new String[] { String.class.getCanonicalName(), String.class.getCanonicalName() };
boolean result = (Boolean) mbeanServer.invoke(name, "authorize", params, signature);
if (result) {
- authorities.add(new SimpleGrantedAuthority("ROLE_"+role));
+ authorities.add(new SimpleGrantedAuthority(role));
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/security/GemFireAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/security/GemFireAuthenticationProvider.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/security/GemFireAuthenticationProvider.java
index dba3135..2d7d606 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/security/GemFireAuthenticationProvider.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/security/GemFireAuthenticationProvider.java
@@ -40,6 +40,7 @@ public class GemFireAuthenticationProvider implements AuthenticationProvider {
private final static PulseLogWriter LOGGER = PulseLogWriter.getLogger();
public GemFireAuthenticationProvider() {
+ System.out.println("here");
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGatewayHubService.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGatewayHubService.java b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGatewayHubService.java
index 3abc962..dd84b75 100644
--- a/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGatewayHubService.java
+++ b/geode-pulse/src/main/java/com/vmware/gemfire/tools/pulse/internal/service/MemberGatewayHubService.java
@@ -19,12 +19,6 @@
package com.vmware.gemfire.tools.pulse.internal.service;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
@@ -36,6 +30,11 @@ import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
/**
* Class MemberGatewayHubService
*
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-pulse/src/main/webapp/Login.html
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/webapp/Login.html b/geode-pulse/src/main/webapp/Login.html
index 2ca512f..f22490f 100644
--- a/geode-pulse/src/main/webapp/Login.html
+++ b/geode-pulse/src/main/webapp/Login.html
@@ -86,10 +86,10 @@ $(function(){
<div id="errorText" class="errorInnerIcon"> </div>
</div>
<div class="loginInnerBlock">
- <form method="POST" action="login" name="loginForm" id="loginForm" autocomplete="off">
- <input class="inputUserName" type="text" name="username" id="user_name" placeholder="Username" autofocus="autofocus" autocomplete="off">
+ <form method="POST" action="j_spring_security_check" name="loginForm" id="loginForm" autocomplete="off">
+ <input class="inputUserName" type="text" name="j_username" id="user_name" placeholder="Username" autofocus="autofocus" autocomplete="off">
<input style="display:none;" type="password" id="fool_password" autocomplete="off">
- <input class="inputPassword" type="password" name="password" id="user_password" placeholder="Password" autocomplete="off">
+ <input class="inputPassword" type="password" name="j_password" id="user_password" placeholder="Password" autocomplete="off">
<!-- Locator host and port are removed for a time -->
<!-- <input class="inputUserName" type="text" name="locator_host" id="locator_host" placeholder="Host">
<input class="inputUserName" type="text" name="locator_port" id="locator_port" placeholder="Port">-->
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-pulse/src/main/webapp/WEB-INF/mvc-dispatcher-servlet.xml
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/webapp/WEB-INF/mvc-dispatcher-servlet.xml b/geode-pulse/src/main/webapp/WEB-INF/mvc-dispatcher-servlet.xml
index f9697a8..60edb18 100644
--- a/geode-pulse/src/main/webapp/WEB-INF/mvc-dispatcher-servlet.xml
+++ b/geode-pulse/src/main/webapp/WEB-INF/mvc-dispatcher-servlet.xml
@@ -21,11 +21,11 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc.xsd">
+ http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
<context:component-scan base-package="com.vmware.gemfire.tools.pulse.internal" />
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-pulse/src/main/webapp/WEB-INF/spring-security.xml
----------------------------------------------------------------------
diff --git a/geode-pulse/src/main/webapp/WEB-INF/spring-security.xml b/geode-pulse/src/main/webapp/WEB-INF/spring-security.xml
index 5341889..b14d03d 100644
--- a/geode-pulse/src/main/webapp/WEB-INF/spring-security.xml
+++ b/geode-pulse/src/main/webapp/WEB-INF/spring-security.xml
@@ -20,12 +20,13 @@
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/security
- http://www.springframework.org/schema/security/spring-security.xsd">
+ http://www.springframework.org/schema/security/spring-security-3.1.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<http auto-config="true" use-expressions="true">
- <csrf disabled="true"/>
<!-- Can be invoked w/o auth -->
<intercept-url pattern="/Login.html" access="permitAll" />
<intercept-url pattern="/pulse/pulseVersion" access="permitAll" />
@@ -33,7 +34,8 @@
<intercept-url pattern="/pulse/pulseProductSupport" access="permitAll" />
<!-- Can be invoked w/o auth -->
- <!-- Restricted urls -->
+ <!-- Restricted urls -->
+ <intercept-url pattern="/DataBrowser.html" access="hasRole('CLUSTER:READ') and hasRole('DATA:READ')" />
<intercept-url pattern="/clusterDetail.html" access="hasRole('CLUSTER:READ')" />
<intercept-url pattern="/MemberDetails.html" access="hasRole('CLUSTER:READ')" />
<intercept-url pattern="/regionDetail.html" access="hasRole('CLUSTER:READ')" />
@@ -72,16 +74,15 @@
<beans:bean id="gemAuthenticationProvider"
class="com.vmware.gemfire.tools.pulse.internal.security.GemFireAuthenticationProvider">
- </beans:bean>
-
+ </beans:bean>
+
<!-- Default user authentication -->
<beans:beans profile="pulse.authentication.default">
<authentication-manager>
<authentication-provider>
<user-service>
- <user name="admin" password="admin"
- authorities="ROLE_CLUSTER:READ,ROLE_DATA:READ"/>
+ <user name="admin" password="admin" authorities="CLUSTER:READ,DATA:READ" />
</user-service>
</authentication-provider>
</authentication-manager>
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseAuthTest.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseAuthTest.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseAuthTest.java
index 9d2f992..65cd47f 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseAuthTest.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseAuthTest.java
@@ -16,19 +16,18 @@
*/
package com.vmware.gemfire.tools.pulse.tests;
+import com.gemstone.gemfire.test.junit.categories.UITest;
import org.junit.BeforeClass;
import org.junit.FixMethodOrder;
import org.junit.experimental.categories.Category;
import org.junit.runners.MethodSorters;
-import com.gemstone.gemfire.test.junit.categories.UITest;
-
@Category(UITest.class)
@FixMethodOrder(MethodSorters.JVM)
public class PulseAuthTest extends PulseAbstractTest {
@BeforeClass
public static void beforeClassSetup() throws Exception {
- setUpServer("pulseUser", "12345", "pulse-auth.json");
+ setUpServer("pulseUser", "12345", "/pulse-auth.json");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseAutomatedTest.java
----------------------------------------------------------------------
diff --git a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseAutomatedTest.java b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseAutomatedTest.java
index 3b06a89..299a343 100644
--- a/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseAutomatedTest.java
+++ b/geode-pulse/src/test/java/com/vmware/gemfire/tools/pulse/tests/PulseAutomatedTest.java
@@ -48,7 +48,7 @@ public class PulseAutomatedTest extends PulseAbstractTest {
@BeforeClass
public static void beforeClassSetup() throws Exception {
- setUpServer("pulseUser", "12345", "pulse-auth.json");
+ setUpServer("pulseUser", "12345", "/pulse-auth.json");
}
@Test
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/util/JSONUtils.java
----------------------------------------------------------------------
diff --git a/geode-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/util/JSONUtils.java b/geode-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/util/JSONUtils.java
index 67091a6..cb9b39d 100644
--- a/geode-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/util/JSONUtils.java
+++ b/geode-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/util/JSONUtils.java
@@ -18,8 +18,8 @@
package com.gemstone.gemfire.rest.internal.web.util;
import java.io.IOException;
-import java.io.OutputStream;
import java.util.Collection;
+import java.util.Map;
import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;
@@ -28,11 +28,13 @@ import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonGenerator.Feature;
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
import com.fasterxml.jackson.databind.ObjectMapper;
-import org.json.JSONException;
-import org.springframework.util.Assert;
-
import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.query.internal.StructImpl;
import com.gemstone.gemfire.internal.HeapDataOutputStream;
+import org.json.JSONException;
+
+import org.springframework.hateoas.Link;
+import org.springframework.util.Assert;
/**
* The JSONUtils class is a utility class for getting JSON equivalent from Java types.
@@ -64,7 +66,7 @@ public abstract class JSONUtils {
HeapDataOutputStream outputStream = new HeapDataOutputStream(com.gemstone.gemfire.internal.Version.CURRENT);
try {
JsonGenerator generator = enableDisableJSONGeneratorFeature(getObjectMapper().getFactory()
- .createGenerator((OutputStream)outputStream, JsonEncoding.UTF8));
+ .createGenerator(outputStream, JsonEncoding.UTF8));
generator.writeStartObject();
generator.writeFieldName("functions");
JsonWriter.writeCollectionAsJson(generator, functionIds);
@@ -78,12 +80,28 @@ public abstract class JSONUtils {
}
}
+ public static String formulateJsonForListCall(Map<String, Link> LinksByName, String keyName, String fieldName) {
+ HeapDataOutputStream outputStream = new HeapDataOutputStream(com.gemstone.gemfire.internal.Version.CURRENT);
+
+ try {
+ JsonGenerator generator = enableDisableJSONGeneratorFeature(getObjectMapper().getFactory()
+ .createGenerator(outputStream, JsonEncoding.UTF8));
+ JsonWriter.writeListAsJson(generator, LinksByName, keyName, fieldName);
+ generator.close();
+ return new String(outputStream.toByteArray());
+ } catch (IOException e) {
+ throw new RuntimeException(e.getMessage());
+ } finally {
+ outputStream.close();
+ }
+ }
+
public static String formulateJsonForListKeys(Object[] keys, String fieldName) {
HeapDataOutputStream outputStream = new HeapDataOutputStream(com.gemstone.gemfire.internal.Version.CURRENT);
try {
JsonGenerator generator = enableDisableJSONGeneratorFeature(getObjectMapper().getFactory()
- .createGenerator((OutputStream)outputStream, JsonEncoding.UTF8));
+ .createGenerator(outputStream, JsonEncoding.UTF8));
generator.writeStartObject();
generator.writeFieldName(fieldName);
JsonWriter.writeObjectArrayAsJson(generator, keys, null);
@@ -102,7 +120,7 @@ public abstract class JSONUtils {
try {
JsonGenerator generator = enableDisableJSONGeneratorFeature(getObjectMapper().getFactory()
- .createGenerator((OutputStream)outputStream, JsonEncoding.UTF8));
+ .createGenerator(outputStream, JsonEncoding.UTF8));
generator.writeStartObject();
generator.writeFieldName(fieldName);
JsonWriter.writeRegionSetAsJson(generator, regions);
@@ -116,11 +134,46 @@ public abstract class JSONUtils {
}
}
+ public static String formulateJsonForGetOnKey(Object value) throws JSONException {
+ HeapDataOutputStream outputStream = new HeapDataOutputStream(com.gemstone.gemfire.internal.Version.CURRENT);
+
+ try {
+ JsonGenerator generator = enableDisableJSONGeneratorFeature(getObjectMapper().getFactory()
+ .createGenerator(outputStream, JsonEncoding.UTF8));
+ JsonWriter.writeValueAsJson(generator, value, "GET_ON_KEY_RESPONSE");
+ generator.close();
+ return new String(outputStream.toByteArray());
+ } catch (IOException e) {
+ throw new RuntimeException(e.getMessage());
+ } finally {
+ outputStream.close();
+ }
+ }
+
+ public static String formulateJsonForGetOnMultipleKey(Collection<Object> collection, String regionName) throws JSONException {
+ HeapDataOutputStream outputStream = new HeapDataOutputStream(com.gemstone.gemfire.internal.Version.CURRENT);
+
+ try {
+ JsonGenerator generator = enableDisableJSONGeneratorFeature(getObjectMapper().getFactory()
+ .createGenerator(outputStream, JsonEncoding.UTF8));
+ generator.writeStartObject();
+ generator.writeFieldName(regionName);
+ JsonWriter.writeCollectionAsJson(generator, collection);
+ generator.writeEndObject();
+ generator.close();
+ return new String(outputStream.toByteArray());
+ } catch (IOException e) {
+ throw new RuntimeException(e.getMessage());
+ } finally {
+ outputStream.close();
+ }
+ }
+
public static String formulateJsonForListQueriesCall(Region<String, String> queryRegion) {
HeapDataOutputStream outputStream = new HeapDataOutputStream(com.gemstone.gemfire.internal.Version.CURRENT);
try {
JsonGenerator generator = enableDisableJSONGeneratorFeature(getObjectMapper().getFactory()
- .createGenerator((OutputStream)outputStream, JsonEncoding.UTF8));
+ .createGenerator(outputStream, JsonEncoding.UTF8));
JsonWriter.writeQueryListAsJson(generator, "queries", queryRegion);
generator.close();
return new String(outputStream.toByteArray());
@@ -136,7 +189,7 @@ public abstract class JSONUtils {
try {
JsonGenerator generator = enableDisableJSONGeneratorFeature(getObjectMapper().getFactory()
- .createGenerator((OutputStream)outputStream, JsonEncoding.UTF8));
+ .createGenerator(outputStream, JsonEncoding.UTF8));
JsonWriter.writeQueryAsJson(generator, queryId, oql);
generator.close();
return new String(outputStream.toByteArray());
@@ -152,7 +205,7 @@ public abstract class JSONUtils {
try {
JsonGenerator generator = enableDisableJSONGeneratorFeature(getObjectMapper().getFactory()
- .createGenerator((OutputStream)outputStream, JsonEncoding.UTF8));
+ .createGenerator(outputStream, JsonEncoding.UTF8));
JsonWriter.writeCollectionAsJson(generator, collection);
generator.close();
return new String(outputStream.toByteArray());
@@ -163,4 +216,36 @@ public abstract class JSONUtils {
}
}
+ public static String convertMapToJson(Map<?, ?> map) throws JSONException {
+ HeapDataOutputStream outputStream = new HeapDataOutputStream(com.gemstone.gemfire.internal.Version.CURRENT);
+
+ try {
+ JsonGenerator generator = enableDisableJSONGeneratorFeature(getObjectMapper().getFactory()
+ .createGenerator(outputStream, JsonEncoding.UTF8));
+ JsonWriter.writeMapAsJson(generator, map, null);
+ generator.close();
+ return new String(outputStream.toByteArray());
+ } catch (IOException e) {
+ throw new RuntimeException(e.getMessage());
+ } finally {
+ outputStream.close();
+ }
+ }
+
+ public static String convertStructToJson(StructImpl structSet) throws JSONException {
+ HeapDataOutputStream outputStream = new HeapDataOutputStream(com.gemstone.gemfire.internal.Version.CURRENT);
+
+ try {
+ JsonGenerator generator = enableDisableJSONGeneratorFeature(getObjectMapper().getFactory()
+ .createGenerator(outputStream, JsonEncoding.UTF8));
+ JsonWriter.writeStructAsJson(generator, structSet);
+ generator.close();
+ return new String(outputStream.toByteArray());
+ } catch (IOException e) {
+ throw new RuntimeException(e.getMessage());
+ } finally {
+ outputStream.close();
+ }
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/util/JsonWriter.java
----------------------------------------------------------------------
diff --git a/geode-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/util/JsonWriter.java b/geode-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/util/JsonWriter.java
index b16dfce..a0ff676 100644
--- a/geode-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/util/JsonWriter.java
+++ b/geode-web-api/src/main/java/com/gemstone/gemfire/rest/internal/web/util/JsonWriter.java
@@ -109,6 +109,30 @@ public class JsonWriter {
generator.writeEndObject();
}
+
+ public static void writeListAsJson(JsonGenerator generator, Map map, String name, String fieldName) throws JsonGenerationException, IOException{
+
+ generator.writeStartObject();
+ generator.writeFieldName(name);
+
+ //introspect the Map and write its value into desired format
+ generator.writeStartArray();
+ Iterator iter = (Iterator) map.entrySet().iterator();
+ while(iter.hasNext()) {
+
+ Map.Entry entry = (Map.Entry) iter.next();
+ generator.writeStartObject();
+ //Iterate over Map and write key-value
+ generator.writeFieldName(fieldName);
+ generator.writeString(entry.getKey().toString());
+
+ writeValueAsJson(generator, entry.getValue(), name);
+ generator.writeEndObject();
+ }
+
+ generator.writeEndArray();
+ generator.writeEndObject();
+ }
public static void writeCollectionAsJson(JsonGenerator generator, /*List*/ Collection<?> coll) throws JsonGenerationException, IOException
{
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-web-api/src/main/webapp/WEB-INF/geode-servlet.xml
----------------------------------------------------------------------
diff --git a/geode-web-api/src/main/webapp/WEB-INF/geode-servlet.xml b/geode-web-api/src/main/webapp/WEB-INF/geode-servlet.xml
index 7e2c64f..e96acb0 100644
--- a/geode-web-api/src/main/webapp/WEB-INF/geode-servlet.xml
+++ b/geode-web-api/src/main/webapp/WEB-INF/geode-servlet.xml
@@ -18,18 +18,16 @@ limitations under the License.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
+ xmlns:oxm="http://www.springframework.org/schema/oxm"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc.xsd
- http://www.springframework.org/schema/util
- http://www.springframework.org/schema/util/spring-util.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
+ http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
+ http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.2.xsd
+ http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd
">
<context:annotation-config />
<context:component-scan base-package="com.gemstone.gemfire.rest.internal.web"/>
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/geode-web/src/main/webapp/WEB-INF/geode-mgmt-servlet.xml
----------------------------------------------------------------------
diff --git a/geode-web/src/main/webapp/WEB-INF/geode-mgmt-servlet.xml b/geode-web/src/main/webapp/WEB-INF/geode-mgmt-servlet.xml
index 83550e7..ce65933 100644
--- a/geode-web/src/main/webapp/WEB-INF/geode-mgmt-servlet.xml
+++ b/geode-web/src/main/webapp/WEB-INF/geode-mgmt-servlet.xml
@@ -21,11 +21,11 @@ limitations under the License.
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc.xsd">
+ http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
<context:component-scan base-package="com.gemstone.gemfire.management.internal.web"/>
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/gradle/dependency-resolution.gradle
----------------------------------------------------------------------
diff --git a/gradle/dependency-resolution.gradle b/gradle/dependency-resolution.gradle
index 1b36bfa..91d1755 100644
--- a/gradle/dependency-resolution.gradle
+++ b/gradle/dependency-resolution.gradle
@@ -15,6 +15,25 @@
* limitations under the License.
*/
subprojects {
+ configurations.all {
+ resolutionStrategy {
+ //failOnVersionConflict()
+
+ //Force certain versions of transitive dependencies
+ //These are forced to match our old non-transitive configuration
+ //These force statements should be removed and tested with the automatically
+ //resolved version
+ force 'org.springframework:spring-context-support:' + project.'springframework.version'
+ force 'org.springframework:spring-context-support:' + project.'springframework.version'
+ force 'org.springframework:spring-context:' + project.'springframework.version'
+ force 'org.springframework:spring-web:' + project.'springframework.version'
+ force 'org.springframework:spring-tx:' + project.'springframework.version'
+ force 'org.springframework:spring-webmvc:' + project.'springframework.version'
+ force 'org.springframework:spring-core:' + project.'springframework.version'
+ force 'jline:jline:' + project.'jline.version'
+ }
+ }
+
//Task to dump all depencies of all projects, in a way
//that can be diffed before and after dependency changes
task dumpDependencies() << {
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/8fd8d79d/gradle/dependency-versions.properties
----------------------------------------------------------------------
diff --git a/gradle/dependency-versions.properties b/gradle/dependency-versions.properties
index 9babe3e..a19520c 100644
--- a/gradle/dependency-versions.properties
+++ b/gradle/dependency-versions.properties
@@ -50,8 +50,8 @@ httpclient.version = 4.5.1
httpcore.version = 4.4.3
httpunit.version = 1.7.2
hsqldb.version = 2.0.0
-jackson.version = 2.8.2
-jackson-module-scala_2.10.version = 2.8.2
+jackson.version = 2.2.0
+jackson-module-scala_2.10.version = 2.1.5
jansi.version = 1.8
javassist.version = 3.20.0-GA
javax.ejb-api.version = 3.0
@@ -88,15 +88,15 @@ powermock.version = 1.6.4
quartz.version = 2.2.1
scala.version = 2.10.0
selenium.version=2.53.1
-shiro.version=1.3.1
-slf4j-api.version = 1.7.21
+shiro.version=1.2.4
+slf4j-api.version = 1.7.7
snappy-java.version=0.4
-spring-hateos.version = 0.21.0.RELEASE
-spring-shell.version = 1.2.0.RELEASE
-spring-ldap-core.version = 2.1.0.RELEASE
-spring-security.version = 4.1.3.RELEASE
-spring-tx.version = 4.3.2.RELEASE
-springframework.version = 4.3.2.RELEASE
+spring-hateos.version = 0.16.0.RELEASE
+spring-shell.version = 1.1.0.RELEASE
+spring-ldap-core.version = 1.3.2.RELEASE
+spring-security.version = 3.1.7.RELEASE
+spring-tx.version = 3.2.12.RELEASE
+springframework.version = 4.2.4.RELEASE
stephenc-findbugs.version = 1.3.9-1
spymemcached.version = 2.9.0
swagger.version = 1.3.2