#498 fix parameter not decoded bug
This commit is contained in:
parent
d850ceefb0
commit
ab60c19e89
@ -31,7 +31,9 @@ import org.javatuples.Pair;
|
|||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.URLDecoder;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.*;
|
import java.util.concurrent.*;
|
||||||
@ -960,7 +962,13 @@ public class RaftCore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void deleteDatum(String key) {
|
private static void deleteDatum(String key) {
|
||||||
Datum deleted = datums.remove(key);
|
|
||||||
|
Datum deleted = null;
|
||||||
|
try {
|
||||||
|
deleted = datums.remove(URLDecoder.decode(key, "UTF-8"));
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
Loggers.RAFT.warn("datum key decode failed: {}", key);
|
||||||
|
}
|
||||||
if (deleted != null) {
|
if (deleted != null) {
|
||||||
RaftStore.delete(deleted);
|
RaftStore.delete(deleted);
|
||||||
notifier.addTask(deleted, Notifier.ApplyAction.DELETE);
|
notifier.addTask(deleted, Notifier.ApplyAction.DELETE);
|
||||||
|
@ -33,6 +33,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.net.URLDecoder;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -64,6 +65,7 @@ public class RaftCommands {
|
|||||||
String entity = new String(IoUtils.tryDecompress(request.getInputStream()), "UTF-8");
|
String entity = new String(IoUtils.tryDecompress(request.getInputStream()), "UTF-8");
|
||||||
|
|
||||||
String value = Arrays.asList(entity).toArray(new String[1])[0];
|
String value = Arrays.asList(entity).toArray(new String[1])[0];
|
||||||
|
value = URLDecoder.decode(value, "UTF-8");
|
||||||
|
|
||||||
JSONObject json = JSON.parseObject(value);
|
JSONObject json = JSON.parseObject(value);
|
||||||
JSONObject beat = JSON.parseObject(json.getString("beat"));
|
JSONObject beat = JSON.parseObject(json.getString("beat"));
|
||||||
@ -112,6 +114,7 @@ public class RaftCommands {
|
|||||||
String entity = IOUtils.toString(request.getInputStream(), "UTF-8");
|
String entity = IOUtils.toString(request.getInputStream(), "UTF-8");
|
||||||
|
|
||||||
String value = Arrays.asList(entity).toArray(new String[1])[0];
|
String value = Arrays.asList(entity).toArray(new String[1])[0];
|
||||||
|
value = URLDecoder.decode(value, "UTF-8");
|
||||||
JSONObject json = JSON.parseObject(value);
|
JSONObject json = JSON.parseObject(value);
|
||||||
|
|
||||||
RaftCore.doSignalPublish(json.getString("key"), json.getString("value"), json.getBooleanValue("locked"));
|
RaftCore.doSignalPublish(json.getString("key"), json.getString("value"), json.getBooleanValue("locked"));
|
||||||
@ -138,6 +141,7 @@ public class RaftCommands {
|
|||||||
response.setHeader("Cache-Control", "no-cache");
|
response.setHeader("Cache-Control", "no-cache");
|
||||||
response.setHeader("Content-Encode", "gzip");
|
response.setHeader("Content-Encode", "gzip");
|
||||||
String keysString = WebUtils.required(request, "keys");
|
String keysString = WebUtils.required(request, "keys");
|
||||||
|
keysString = URLDecoder.decode(keysString, "UTF-8");
|
||||||
String[] keys = keysString.split(",");
|
String[] keys = keysString.split(",");
|
||||||
List<Datum> datums = new ArrayList<Datum>();
|
List<Datum> datums = new ArrayList<Datum>();
|
||||||
|
|
||||||
@ -174,6 +178,7 @@ public class RaftCommands {
|
|||||||
String entity = IOUtils.toString(request.getInputStream(), "UTF-8");
|
String entity = IOUtils.toString(request.getInputStream(), "UTF-8");
|
||||||
|
|
||||||
String value = Arrays.asList(entity).toArray(new String[1])[0];
|
String value = Arrays.asList(entity).toArray(new String[1])[0];
|
||||||
|
value = URLDecoder.decode(value, "UTF-8");
|
||||||
JSONObject jsonObject = JSON.parseObject(value);
|
JSONObject jsonObject = JSON.parseObject(value);
|
||||||
|
|
||||||
RaftCore.onPublish(jsonObject, jsonObject.getBoolean("increaseTerm"));
|
RaftCore.onPublish(jsonObject, jsonObject.getBoolean("increaseTerm"));
|
||||||
@ -191,6 +196,7 @@ public class RaftCommands {
|
|||||||
String entity = IOUtils.toString(request.getInputStream(), "UTF-8");
|
String entity = IOUtils.toString(request.getInputStream(), "UTF-8");
|
||||||
|
|
||||||
String value = Arrays.asList(entity).toArray(new String[1])[0];
|
String value = Arrays.asList(entity).toArray(new String[1])[0];
|
||||||
|
value = URLDecoder.decode(value, "UTF-8");
|
||||||
RaftCore.onDelete(JSON.parseObject(value));
|
RaftCore.onDelete(JSON.parseObject(value));
|
||||||
return "ok";
|
return "ok";
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user