mirror of https://github.com/OpenVidu/openvidu.git
openvidu-server: KurentoOptions parameters type check
parent
7ce6826b62
commit
0ab3add07c
|
@ -500,7 +500,7 @@ public class KurentoSessionManager extends SessionManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public KurentoMediaOptions generateMediaOptions(Request<JsonObject> request) {
|
public KurentoMediaOptions generateMediaOptions(Request<JsonObject> request) throws OpenViduException {
|
||||||
|
|
||||||
String sdpOffer = RpcHandler.getStringParam(request, ProtocolElements.PUBLISHVIDEO_SDPOFFER_PARAM);
|
String sdpOffer = RpcHandler.getStringParam(request, ProtocolElements.PUBLISHVIDEO_SDPOFFER_PARAM);
|
||||||
boolean hasAudio = RpcHandler.getBooleanParam(request, ProtocolElements.PUBLISHVIDEO_HASAUDIO_PARAM);
|
boolean hasAudio = RpcHandler.getBooleanParam(request, ProtocolElements.PUBLISHVIDEO_HASAUDIO_PARAM);
|
||||||
|
@ -534,8 +534,17 @@ public class KurentoSessionManager extends SessionManager {
|
||||||
try {
|
try {
|
||||||
JsonObject kurentoFilterJson = (JsonObject) RpcHandler.getParam(request,
|
JsonObject kurentoFilterJson = (JsonObject) RpcHandler.getParam(request,
|
||||||
ProtocolElements.PUBLISHVIDEO_KURENTOFILTER_PARAM);
|
ProtocolElements.PUBLISHVIDEO_KURENTOFILTER_PARAM);
|
||||||
kurentoFilter = new KurentoFilter(kurentoFilterJson.get("type").getAsString(),
|
if (kurentoFilterJson != null) {
|
||||||
kurentoFilterJson.get("options").getAsJsonObject());
|
try {
|
||||||
|
kurentoFilter = new KurentoFilter(kurentoFilterJson.get("type").getAsString(),
|
||||||
|
kurentoFilterJson.get("options").getAsJsonObject());
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new OpenViduException(Code.FILTER_NOT_APPLIED_ERROR_CODE,
|
||||||
|
"'filter' parameter wrong:" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (OpenViduException e) {
|
||||||
|
throw e;
|
||||||
} catch (RuntimeException noParameterFound) {
|
} catch (RuntimeException noParameterFound) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -218,7 +218,12 @@ public class SessionRestController {
|
||||||
String sessionId = (String) params.get("session");
|
String sessionId = (String) params.get("session");
|
||||||
String roleString = (String) params.get("role");
|
String roleString = (String) params.get("role");
|
||||||
String metadata = (String) params.get("data");
|
String metadata = (String) params.get("data");
|
||||||
JsonObject kurentoOptions = new JsonParser().parse(params.get("kurentoOptions").toString()).getAsJsonObject();
|
|
||||||
|
JsonObject kurentoOptions = null;
|
||||||
|
|
||||||
|
if (params.get("kurentoOptions") != null) {
|
||||||
|
kurentoOptions = new JsonParser().parse(params.get("kurentoOptions").toString()).getAsJsonObject();
|
||||||
|
}
|
||||||
|
|
||||||
ParticipantRole role;
|
ParticipantRole role;
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -33,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
||||||
|
import com.google.gson.JsonSyntaxException;
|
||||||
|
|
||||||
import io.openvidu.client.OpenViduException;
|
import io.openvidu.client.OpenViduException;
|
||||||
import io.openvidu.client.OpenViduException.Code;
|
import io.openvidu.client.OpenViduException.Code;
|
||||||
|
@ -375,8 +376,14 @@ public class RpcHandler extends DefaultJsonRpcHandler<JsonObject> {
|
||||||
|
|
||||||
String filterType = getStringParam(request, ProtocolElements.FILTER_TYPE_PARAM);
|
String filterType = getStringParam(request, ProtocolElements.FILTER_TYPE_PARAM);
|
||||||
if (participant.getToken().getKurentoTokenOptions().isFilterAllowed(filterType)) {
|
if (participant.getToken().getKurentoTokenOptions().isFilterAllowed(filterType)) {
|
||||||
JsonObject filterOptions = new JsonParser().parse(getStringParam(request, ProtocolElements.FILTER_OPTIONS_PARAM))
|
JsonObject filterOptions;
|
||||||
.getAsJsonObject();
|
try {
|
||||||
|
filterOptions = new JsonParser().parse(getStringParam(request, ProtocolElements.FILTER_OPTIONS_PARAM))
|
||||||
|
.getAsJsonObject();
|
||||||
|
} catch (JsonSyntaxException e) {
|
||||||
|
throw new OpenViduException(Code.FILTER_NOT_APPLIED_ERROR_CODE,
|
||||||
|
"'options' parameter is not a JSON object: " + e.getMessage());
|
||||||
|
}
|
||||||
String streamId = getStringParam(request, ProtocolElements.FILTER_STREAMID_PARAM);
|
String streamId = getStringParam(request, ProtocolElements.FILTER_STREAMID_PARAM);
|
||||||
sessionManager.applyFilter(sessionManager.getSession(rpcConnection.getSessionId()), streamId, filterType,
|
sessionManager.applyFilter(sessionManager.getSession(rpcConnection.getSessionId()), streamId, filterType,
|
||||||
filterOptions, null, request.getId(), "applyFilter");
|
filterOptions, null, request.getId(), "applyFilter");
|
||||||
|
|
Loading…
Reference in New Issue